2016-07-08 4 views
0

swagger & swagger-akka-http을 사용하여 akka-http API를 문서화하려고합니다. This blog post은 나에게 좋은 출발을 주었지만 지금은 API가 기본 인증을 사용한다는 사실을 문서화하려고 노력 중이다.akka-http & basic auth에서 swagger를 사용하는 방법

는 내가 가지고있는 것은 :

@Path("/foo") 
@Api(value = "/foo", produces = "application/json") 
class FooService ... 

@ApiOperation(value = "Get list of all foos", nickname = "getAllFoos", httpMethod = "GET", 
response = classOf[Foo], responseContainer = "Set") 
def getAll: Route = get {... 

이 내가 자신감의 UI에서 볼 수있는 JSON을 생성합니다. 그러나 auth 옵션이 없으므로 생성 된 예제를 사용할 수 없습니다. 그러나

securityDefinitions: 
    basicAuth: 
    type: basic 
    description: HTTP Basic Authentication. 

, 나는이없는 :

나는 자신감이-akka-HTTP하는 yaml에서

, 이것은 다음과 같이 수있는 일부 사용 yaml 설정이 사용하는 예를 발견하지 않았습니다 yaml. 주석을 제외하고는 생성 된 .json을 제어 할 수도 없습니다.

IIUC의 경우 올바른 방법은 authorizations 매개 변수이며 Api 또는 ApiOperation 특수 효과입니다. 이 param에는 Authorization 주석 배열이 포함되어야합니다.

Authorization 주석의 value 속성은 SecurityDefinitionObject

을 참조하기로하지만 방법이 SecurityDefinitionObject 사용하여 주석을 정의하는 생각이 없습니다.

Authorization 주석은 독립형으로 사용하지 않아야하며,있는 경우 무시됩니다.

내가 놓친 것이 있습니까? 여분의 선언이있는 yaml 또는 json 파일이 필요하며 어떻게해야합니까? 뭔가 더 많은게 있니?

paths: { 
    /foos: { 
     get: { 
     security: [ 
      { 
      basicAuth: [ ] 
      } 
     ], 

이제 유일한 문제는 자신감을 얻을 수 있습니다 :

을 편집 0.7.2-SNAPSHOT으로

의 BASICAUTH 배열이 생성되는 거짓말이 감사합니다 UI를 올바르게 해석하고 예제에서 auth를 사용하십시오. AFAIK, UI에서 기본 인증이 필요한 경우 직접 입력해야합니다. here

답변

1

저는 현재 swagger-akka-http을 유지하고 있습니다.

코드는 swagger.io 코드베이스를 둘러싼 꽤 얇은 래퍼입니다.

@Api 및 @ApiOperation 주석은 권한 부여 매개 변수를 지원합니다.

https://github.com/swagger-api/swagger-core/blob/master/modules/swagger-annotations/src/main/java/io/swagger/annotations/Api.java

@Api(value = "/myApi", description = "My API", produces = "application/json", 
authorizations=Array(new Authorization(value="basicAuth"))) 

나는이 기능을 사용한 적이 있지만, 어쩌면 당신은 그것을 시도 할 수 있습니다.

+0

나는 @Api 인증 값이 swagger json에서 나오지 않는 것으로 보아 당신이보고있는 것을 본 것 같습니다. io.swagger.jaxrs.Reader 클래스를 살펴본 결과 필요한 정보를 제공하는 것처럼 보입니다. swagger-akka-http의 SwaggerDocService 클래스에서 기존 Info 객체 지원과 같은 지원을 추가 할 수 있는지 조사 할 수 있습니다. –

+0

https://github.com/pjfanning/swagger-akka-http-sample/tree/api-authorizations에는 권한이있는 @Api 주석을 시연하는 수정이되어 있으며 swagger json (http : // localhost)에서 출력을 얻습니다 : 12345/api-docs/swagger.json). ''security ': [{ "basicAuth": [] }], –

+0

보안 정의 설정을 지원하는 swagger-akka-http의 0.7.2-SNAPSHOT 버전을 만들었습니다. - https://github.com/pjfanning/swagger-akka-http-sample/tree/security-definitions는 샘플에서 사용법을 보여줍니다. –

관련 문제