2014-12-23 8 views
8

일반 old express로 작성된 개인 api가 있습니다. 그것을 밖으로 보내고 몇 가지 API를 설명서를 제공하는 시간.nodejs/express로 작성된 기존 응용 프로그램의 api 문서를 작성해야합니다.

api 문서를 코드에 통합하기 위해 명시 적 앱을 다시 쓰고 싶지 않습니다. 주로 내 api를 문서화하기 위해 어떤 프레임 워크 나 스펙을 사용해야할지 모르겠다. 그렇기 때문에 실제로 특정 한 가지로 고정하고 싶지는 않다.

내 api (즉, 다른 서버 또는 하위 도메인을 실행하고 싶지 않음)의 하위 리소스로 문서를 제공하고 싶습니다. 어쩌면 '/ api/docs'. 플러스는 또한 내 응용 프로그램 내에서 워드 프로세서를 구문 분석 할 수있는 UI가 될 것이고 적어도 html로 문서의 멋진 프리젠 테이션을 제공 할 수 있습니다 (API 상호 작용은 플러스 임).

같은 내용은 멋지지만, 내 표현 코드를 모두 다시 작성해야 쓸데없는 것들을 통합 할 수 있습니다. 그 시점에서 나는 큰 투자를했고 기품이 강하게 결합되었습니다.

기존 경로를 최소한으로 침범하는 방식으로 내 API를 문서화하기 위해 swagger 나 i 아니면 다른 것을 제공 할 수있는 방법이 있습니까?

편집 :

내가 손으로 쓴 문서에서 자신감 사양을 제공 할 수있다. 내가보기에 문제는 당신이 swagger doc에서 basePath를 정의해야한다는 것이다. 그렇다고해서 다른 도메인에 쉽게 배포 할 수있는 것은 아닙니다.

+1

언제든지 메모장을 열어 수동으로 문서를 .html 파일로 작성할 수 있습니다. 다음은 [Mashery] (http://www.mashery.com/product/io- docs) : http://www.infoq.com/research/api-documentation – FoggyDay

+1

당신도 당신의 사양을 구문 분석하고 그것을 아름답게 보여줄 것입니다 swiger UI를 알고 있어야합니다 + API를 통합 당신이 사양을 쓸데없는 사양에 따라 작성 제공 . – Sikorski

+0

감사합니다. 나는 swagger-ui가 있다는 것을 알았습니다. 기존 노드 프로젝트에 의존성으로 추가 할 수 있는지 알고 있습니까? – lostintranslation

답변

7

애플리케이션과 Swagger를 통합하는 데 사용할 수있는 다양한 node.js 도구가 있습니다. 다른 방식으로 제공한다고 가정합니다. 여기에 통합 목록을 볼 수 있습니다 (https://github.com/webron/swagger-spec/#nodejs). 그러나 여기에 나와 있지 않은 추가 도구가 있다고 말할 수 있습니다. 당신은 swagger와 node/express를 위해 github을 검색 할 수 있습니다.

수동 사양 및 basePath - Swagger 2.0은 실제로이를 해결합니다. 온라인 편집기 (http://editor.swagger.io)를 사용하여 더 친숙한 YAML 형식으로 스펙을 작성한 다음 JSON으로 내보낼 수 있습니다. Swagger 1.2 및 이전 버전과 달리 basePath는 schemes (http, https), host (도메인, 포트) 및 basePath (응용 프로그램의 루트 컨텍스트)의 세 가지 속성으로 분할됩니다. 이러한 속성은 필수 사항이 아니며 swagger.json 파일 (사양 자체)을 제공하는 모든 것이 기본값입니다. schemes의 기본값은 구성 서비스 swagger.json이며, host은 swagger.json을 제공하는 데 사용되는 호스트의 기본값이며 basePath은 명시 적으로 지정하지 않는 한 \이됩니다. 나는 이것이 basePath에 관한 당신의 염려를 해결해야한다고 생각한다.

+0

와우, 고마워. 당신이 당신의 swagger 파일을 부품으로 쏟아 부을 수 있는지 아십니까? I.E. 각 리소스에 대해 하나의 파일을 제공하고 서빙하기 전에 결합 된 파트가 있습니까? – lostintranslation

+1

2.0에서는 이론적으로 할 수 있지만 거기에서 해결해야 할 문제가 있으므로 아직 그 옵션을 사용하지 않을 것입니다.지금은 모델, 매개 변수 및 응답 반복을 완화하는 방법이 있지만 단일 파일에 모든 것을 보관하는 것이 좋습니다. – Ron

+0

http://editor.swagger.io를 사용했습니다. YAML doc을 작성한 후 json swagger 파일을 다운로드 한 후 어떻게해야합니까? 내 nodejs 앱에이를 통합해야합니다. –