2016-11-01 2 views
2

여러 컨트롤러 (마이크로 서비스)를 호스팅하는 REST 서비스를 구축 중입니다. 전반적으로 서비스 "Bob"에게 전화를 걸 수 있습니다. 그래서 "Bob"/ "Bob Microservices 컬렉션"을 표시합니다. 그런 다음 컨트롤러 이름이 나열됩니다. 지금 당장은 XYZ, ABC 등을 보여줄뿐입니다. "XYZ - XYZ API 모음"또는 그와 비슷한 것을 보여줄 방법이 있습니까?Swagger (Asp.Net Core)에는 컨트롤러 설명이 있습니까?

swagger처럼 보이는 것은 /// Summary를 메서드에 표시하지만 컨트롤러에는 표시하지 않습니다.

+0

빠른 참고 : 여러 컨트롤러가 분명히 마이크로 서비스가 아닙니다. –

+0

@KierenJohnstone -이 의미에서 그렇게하는 것이 좋습니다. 분명히 순수한 REST가 아니라 ... 우리는 라우트로 지정된 컨트롤러에 여러 POST 메소드를 가질 것이다. 따라서/Bob/XYZ/method1,/Bob/XYZ/method2 등에 게시 할 수 있습니다. 그 이유는 그들이 microservices라고 부르는 이유입니다. – SledgeHammer

+0

이것은 단지 REST를 사용하지 않는 웹 API 일뿐입니다. 마이크로 서비스는 개별적으로 버전이 다르며 빌드되고 (일반적으로 자동으로) 배포 된 서비스의 모음으로 각기 고유 한 데이터 저장소와 바운드 컨텍스트가 있습니다. 당신은 단지 "컨트롤러"에 대해서 말하고 있습니다 –

답변

4

어쩌면 자신감 쇼가 할 수있는 방법이 있나요 "XYZ를 - XYZ의 API 모음"

Yes (예). 가장 쉬운 방법 중 하나가 여기 있습니다. Swagger의 ASP.NET 코어 버전은 ApiExplorerSettings 특성을 사용합니다. GroupName을 설정할 수 있습니다.

public class BobController 
{ 
    [ApiExplorerSettings(GroupName="XYZ - A collection of XYZ APIs")] 
    public IActionResult MyAction() 
    { 
     ... 
    } 
} 

그룹 이름이 Swagger UI에 나타나며 그룹의 작업이 아래 작업으로 나열됩니다.

enter image description here

편집

: 여기는 쇠망의 의견을 기반으로 생각입니다.

Swagger ASP.NET 코어는 IApiDescriptionGroupCollectionProvider을 사용하여 설명 그룹을 만듭니다. 우리는 영감을 얻기 위해 기본값 ApiDescriptionGroupCollectionProvider을 사용하여 우리 자신을 구현할 수 있으며 Startup.ConfigureServices 동안 제공자를 등록 할 수 있습니다. 구현을 통해 ApiDescriptionGroups() 메서드는 각 액션 컨트롤러와 연결된 GroupName을 반환합니다. 그런 다음 각 작업 대신 각 컨트롤러에 ApiExplorerSettings 속성을 추가 할 수 있습니다.

+0

감사합니다 Shaun, 컨트롤러의 모든 방법에이 코드를 넣어야 할 것 같습니다. 클래스에 넣으려고했는데 (속성에 허용 된 것이 있기 때문에), Swagger는 그것을 선택하지 않았습니다. – SledgeHammer

+0

@SledgeHammer 예. 우리는 그 속성을 컨트롤러의 각 메소드에 두어야합니다. 시간이 허락한다면, 나는 그것을 컨트롤러 수준에서 적용하는 방법을 연구 할 것이다. –

+0

@SledgeHammer 아이디어 편집을 참조하십시오. –

1

당신은 또한에 대한 SwaggerOperationAttribute을 사용할 수

public class MyController 
{ 
    [SwaggerOperation(Tags = new[] { "XYZ - A collection of XYZ APIs" })] 
    public IActionResult MyAction() 
    { 
    } 
} 

Swashbuckle.AspNetCore 버전 1.0.0-RC3에서 ApiExplorerSettingsAttribute 특정 자신감 문서에서 작업을 포함하는 데 사용됩니다.