[Dining-toologle]Swagger連動


大きく振る
APIを開発する際には、お客様とのコミュニケーションを円滑にするために、APIリストが必要です.リストを生成するには、APIドキュメントを自動的に生成するSwagerを使用する方法がいくつかあります.
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.6.1</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.6.1</version>
    </dependency>
    
mavenに依存項目を追加します.
javaconfigを設定します.
@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket swaggerApi(){
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(swaggerInfo()).select()
                .apis(RequestHandlerSelectors.basePackage("kr.or.dining_together.member.controller"))
                .paths(PathSelectors.ant("/auth/**"))
                .build()
                .useDefaultResponseMessages(false); // 기본으로 세팅되는 200,401,403,404 메시지를 표시 하지 않음
    }

    private ApiInfo swaggerInfo() {
        return new ApiInfoBuilder().title("Member API Documentation")
                .description("회원 API 문서")
                .version("1").build();
    }
}
https://springfox.github.io/springfox/docs/current/#springfox-spring-mvc-and-spring-boot
正式な書類
@EnableSwagger2
Springfox傲慢2を使う
Docket
Springfoxフレームワークの基本インタフェースのコンストラクタとして、さまざまなデフォルト値と便利な構成方法を提供しています.その後select()を使用して戻り、ApiSelectorBuilderを使用します.
.apis
apiをインポートする場所を定義します.
(RequestHandlerSelectors.basePackage("kr.or.dining_together.member.controller"))
ソフトウェア饅頭アイテムのコントローラに基づいてドキュメントを生成します.
paths
特定のpath生成ドキュメントのみをフィルタします.
.useDefaultResponseMessages
デフォルトで200403404に設定されているメール
筆者がこのような状況を明らかにしなかったのは,誤りを管理するためである
Controller
@Api(tags={"1. Sign"})
@RequiredArgsConstructor
@RestController
@RequestMapping(value="/auth")
public class SignController {
    /*
    로그인 회원가입 로직
     */
    private final UserRepository userRepository;
    private final JwtTokenProvider jwtTokenProvider;
    private final ResponseService responseService;
    private final PasswordEncoder passwordEncoder;
    private final UserService userService;

    @ApiOperation(value="로그인", notes = "이메일을 통해 로그인한다.")
    @PostMapping(value="/login")
    public SingleResult<String> login(@RequestBody @ApiParam(value="이메일 비밀번호",required = true) RequestLogin requestLogin){
        UserDto userDto = userService.login(requestLogin);
        return responseService.getSingleResult(jwtTokenProvider.createToken(String.valueOf(userDto.getEmail()), userDto.getRoles()));
    }



}
@Api(tags={"1. Sign"})
トップレベルのタイトル値の設定
@ApiOperation(value=「ログイン」、notes=「電子メールでログイン」)
各リソースのタイトルと説明
@RequestBody@ApiParam(value=「電子メールパスワード」、required=true)RequestLoginリクエストLogin
パラメータの説明
通常、この設定ファイルは理解しにくいので、正式なドキュメントやブログを探して、一つ一つ分解したほうが理解しやすいです...疲れたけど…
https://taetaetae.github.io/posts/openapi-and-swagger-ui-in-spring-boot/
https://springfox.github.io/springfox/docs/current/#springfox-spring-mvc-and-spring-boot