2017-01-04 5 views
2

다른 서비스를 제공하는 MicroServices가있는 REST API를 구축하고 있습니다.이 resourcesA 자원 를 제공Azure API 관리에서 여러 REST API 관리

ServiceA 및 URL 아래 https://my-internal-endpoint-for-serviceB/resourcesB https://my-internal-endpoint-for-serviceB/resourcesB1 와 아래 URL을 https://my-internal-endpoint-for-serviceA/resourcesA https://my-internal-endpoint-for-serviceA/resourcesA1

이 resourcesB 자원 를 제공 ServiceB 및 resourcesB1resourcesA1 : 나는 서비스 아래에 있다고 가정

이제 Azure API Management에서 관리하고 싶습니다. 서비스에서 Swagger 문서를 가져 와서 게시하려면 API 관리 포털에 게시 할 API 경로가 있어야합니다. 그래서, serviceA 및 serviceB은 다음과 같습니다 게시 할 수 있습니다 : https://my-api-azure-api.net/serviceA/resourcesA https://my-api-azure-api.net/serviceA/resourcesA1 https://my-api-azure-api.net/serviceB/resourcesB https://my-api-azure-api.net/serviceB/resourcesB1

그러나 더 많은 자원 기반 API 관리로, 좀 더 같이 아래로 공개 된 API를 기대하고있다 : 는 https://my-api-azure-api.net/resourcesA https://my-api-azure-api.net/resourcesA1 https://my-api-azure-api.net/resourcesB https://my-api-azure-api.net/resourcesB1

불행하게도, API 관리하지 않습니다 2 개의 API (serviceA 및 serviceB)를 동일한 경로 (이 경우 루트 경로)로 pubshing 할 수있게 해줍니다. 서비스 이름이 제공 한 리소스 이름과 중복되므로 URL 경로에 서비스 이름 (또는 이와 동등한 항목)을 넣고 싶지 않습니다. 어떻게 해결할 수 있습니까?

답변

1

Azure API 관리 정책은 여기에서 도움이 될 수 있습니다. 특히 요청을 전달할 수있는 제어 흐름. 설명서는 여기에 있습니다 : https://docs.microsoft.com/en-us/azure/api-management/api-management-policy-reference

나는 하나의 API로 리소스를 설정하고 swagger를 통해 리소스를 추가 한 다음이 서비스에 다른 서비스를 추가하여 완료하도록합니다 (원하는대로 표시). 하나의 완전한 서비스로서). 일단이 정책이 적용되면 정책을 적용 할 수 있습니다.

참고 : 다음과 같은 방법

https://my-api-azure-api.net/mynewservice/resourcesA 
https://my-api-azure-api.net/mynewservice/resourcesA1 
https://my-api-azure-api.net/mynewservice/resourcesB 
https://my-api-azure-api.net/mynewservice/resourcesB1 
+0

빈 루트 세그먼트가있는 API를 호스트하여 모든 리소스가 루트에 직접 나타나도록 할 수도 있습니다. –

0

에서 자원 경로를 확장 할 수 있습니다 어쩌면이 질문에 대한 대답은 도움이 될 수 있습니다 이 How to chain APIs using Azure API management

당신은 여러 가지 작업을지도하는 동일한 정책을 사용할 수 있습니다 API 관리에서 동일한 API를 다른 백엔드 API에 제공합니다. 그러나 일반적으로 모든 API는 <myGateway>.azure-api.net/<myApi>/<myOperation>으로 표시됩니다.