281장. REST Swagger 구성 요소
Camel 버전 2.19로 사용 가능
rest-swagger 는 Open API(Open API) 사양의 나머지 생산자를 구성하고 RestProducerFactory 인터페이스를 구현하는 구성 요소에 위임을 구성합니다. http://swagger.io/ 현재 알려진 작동 구성 요소는 다음과 같습니다.
Maven 사용자는 이 구성 요소에 대해 pom.xml
에 다음 종속성을 추가해야 합니다.
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-rest-swagger</artifactId> <version>x.x.x</version> <!-- use the same version as your Camel core version --> </dependency>
281.1. URI 형식
rest-swagger:[specificationPath#]operationId
여기서 operationId
는 Swagger 사양의 작업 ID이며 specificationPath
는 사양의 경로입니다. specificationPath
를 지정하지 않으면 기본값은 swagger.json
입니다. 조회 메커니즘은 Camels ResourceHelper
를 사용하여 리소스를 로드합니다. 즉, CLASSPATH 리소스(classpath:my-specification.json
), 파일(file:/some/path.json
), 웹(http://api.example.com/swagger.json
)을 참조하거나, nodejs(ref:nameOfBean
)를 참조하거나빈의 메서드를 사용하여 리소스를 가져올 수 있습니다.
Swagger의 자체 리소스 로드 지원이 실패합니다.
이 구성 요소는 HTTP 클라이언트 역할을 하지 않으며 위에서 언급한 다른 구성 요소에 위임합니다. 조회 메커니즘은 RestProducerFactory 인터페이스를 구현하고 이를 사용하는 단일 구성 요소를 검색합니다. CLASSPATH에 둘 이상의 항목이 포함된 경우, 위임할 구성 요소를 표시하도록 속성 componentName
을 설정해야 합니다.
대부분의 구성은 Swagger 사양에서 가져오지만 구성 요소 또는 끝점에서 지정하는 방식으로 해당 설정을 재정의하는 옵션이 있습니다. 일반적으로 사양과 다른 경우 host
또는 basePath
만 재정의해야 합니다.
host
매개변수에는 스키마, 호스트 이름 및 포트 번호가 포함된 절대 URI가 포함되어야 합니다(예: https://api.example.com) .
componentName
을 사용하여 요청을 수행하는 데 사용되는 구성 요소를 지정하면 Camel 컨텍스트에 이 이름이 지정된 구성 요소가 있어야 하며, 필요한 RestProducerFactory 인터페이스 전환이 top에 나열된 구성 요소를 구현해야 합니다.
구성 요소 또는 끝점 수준에서 componentName 을 지정하지 않으면 CLASSPATH에서 적절한 위임을 검색합니다. 이를 위해 RestProducerFactory 인터페이스를 구현하는 CLASSPATH에는 하나의 구성 요소만 있어야 합니다.
이 구성 요소의 엔드포인트 URI는 메시지 헤더에 더하여 REST 작업의 매개변수를 끝점 매개변수로 지정할 수 있다는 것을 의미합니다. 이는 모든 후속 호출에 일정하므로 이 기능을 모든 호출에 대해 일정하게 사용할 수 있으므로 /api/7.13/users/{id}
와 같은 경로의 모든 호출에 대해 예제 API 버전에 대해 일정하게 일정합니다.