2017-12-01 1 views
1

나는 기존 공용 API에 대해 openapi 사양 (예 : "swagger v3")을 만들고 있습니다. 이 API에는 승인되지 않은 인증 된 엔드 포인트와 oauth2 인증 된 엔드 포인트가 있습니다.단일 openapi (v3) 사양에서 비인가 및 Oauth2 끝점을 모두 지정하는 방법은 무엇입니까?

나는 Github의 사양을 참조하고 Stackoverflow와 Google을 사용하여 검색했습니다. 단일 사용 프로토콜의 예를 찾았지만 두 개의 프로토콜이있는 경우에는 그렇지 않습니다.

일부 백인 기사는 openapi v3을 사용하여 두 프로토콜을 모두 코딩하는 방법에 대한 예제 또는 문서 참조를 제공합니까? 감사!!

+0

1) 경로'/ a'는 OAuth를 사용하지만 경로'/ b'는 auth를 사용하지 않거나 2) 동일한 경로'/ a'를 OAuth와 인증없이 모두 호출 할 수 있습니까? – Helen

+0

헬렌, 내 질문은 당신의 # 1 예와 관련이 있습니다. 이 특정 인스턴스는 서버의 상태를 확인하는 엔드 포인트를 포함합니다.이 문서에서는/ping 엔드 포인트로 인증을 필요로하지 않아야합니다. – Mike

답변

2

해결 방법은 끝점을 정의 할 때 보안 개체를 묻지 않는 것으로 보입니다.

아래의 코드 블록은이 대답에 도달하는 데 사용 된 간단한 코드입니다.

paths: 
    /admin/status: 
    get: 
     tags: 
     - admin 
     responses: 
     '200': 
      description: successful operation 

components: 
    securitySchemes: 
    BASIC_AUTH: 
     type: http 
     scheme: basic 

나는 인증을 요구하는 API의 다른 모든 끝점을 사용합니다. 보안 개체는 필수 항목입니다.

+0

맞습니다. spec의 루트 레벨에'security'를 추가하지 말고, 대신 그것을 요구하는 특정 작업에'security'를 추가하십시오. – Helen

관련 문제