2016-08-23 2 views
2

Swagger를 사용하여 내 .NET C# API를 문서화하고 내 모델이 다른 프로젝트에있을 때 Swagger가 충돌하고 아무 것도로드하지 않습니다. Swashbuckle - 다른 프로젝트의 모델에서 Swagger UI에 모델 및 예제 값 추가

내가 비주얼 스튜디오에서 샘플 WebAPI 프로젝트를로드

이 같은 프로젝트에있는 모델을 사용하며, 작동 :

Visual Studio Sample Project Example Image

을하지만 다른 프로젝트에서 모델을 사용할 때 그것은 단지로드하기 전에 충돌 아무것도.

API 프로젝트와 비즈니스 프로젝트가 있습니다. 내 모델은 내 Buisiness Project에 저장된 View Model이며 다른 프로젝트와 공유됩니다.

모델 정의가있는 Swagger에 표시 할 수있는 방법이 있습니까?

답변

-1

저는 IIS에서 호스팅 된 웹 API 프로젝트를 작업 할 때 비슷한 시나리오를 처리했습니다. 두 개의 서로 다른 프로젝트의 모든 뷰 모델과 모델에 대해 XML 문서를 사용하도록 설정해야했습니다. 먼저 구축 한 후 XML 파일을 포함,

  1. 이 관련 프로젝트에 대한 XML 문서는 각 프로젝트에 대한
  2. (here 참조) 사용 : 아래

    은 작품의 주요 단계를 요약 한 것입니다 프로젝트. "Copy to Output Directory"파일의 속성을 "Copy is newer"로 설정하여 서버의 bin 폴더에 복사되었는지 확인하십시오.
  3. Swagger 구성에서 IncludeXmlComments()를 호출하여 Simon88에서 제안한대로 XML 문서 파일을 포함시킵니다.

요점은 모든 XML 문서 파일이 호스트 서버의 bin 폴더에 복사되고 Swagger UI가 자신의 위치를 ​​알 수 있도록하는 것입니다 :-).

그런데이 문제에 대한 비슷한 질문/답변은 거의 없습니다. 하나는 here

희망이 있습니다.

+0

감사합니다. Ping, 정말 도움이되었습니다! 건배 –

0

나는 실제로 똑같은 일을하고 있습니다!

Swagger 구성에서 필자는 함수가 XML 문서 파일을 가리키는 곳에서이 작업을 시도했습니다.

c.IncludeXmlComments(GetXmlCommentsPathForControllers()); 
c.IncludeXmlComments(GetXmlCommentsPathForModels()); 

컨트롤러에는 문제가 없지만 모델을 문서화 할 때 많이 발생하지는 않습니다.

0
  1. 소스 당신은 항상,
  2. 웹 응용 프로그램 웹 응용 프로그램 및 모델의 소스가 다른 프로젝트에있는 경우

에게

  • 모델 수
      메타 데이터 xml을 생성하고 빌드의 일부로 웹 애플리케이션 내부의 공통 위치로 복사하십시오.

      그래서이 경우에는 편집 출력 XML을 ".. \ 웹 애플리케이션 빈 \"동적 예를 생성

      에 모델의 프로젝트 속성, 난이 link 통과 추천 할 것입니다.

  • 관련 문제