.Net 4.5を使用してWebAPIを作成し、このAPIを Swagger を使用して文書化したいと考えています。 .Netプロジェクトに swagger-ui を追加しました。 ../swagger-ui/index.htmlを参照すると、swagger UI形式で pet store api-docs (json)が正常に開きます。
私の質問は、WebAPIコントローラーとモデル用にそのような(swagger)jsonを作成するにはどうすればよいですか?必要なXMLの要約/コメントをc#のクラスと属性に追加したので。
Swagger.Net と Swashbuckle が同様のことをしているのを見ましたが、それらのいずれかを使用してswagger-jsonファイルを生成する方法を本当に理解できませんでした。私がしている非常に小さな間違いがあるかもしれませんが、指摘することはできません。
助けてください。
前述のとおり、/ swaggerを使用すると、swagger UIに移動します。
スワッシュバックルを使用している場合は、/swagger/docs/v1
でswagger.jsonファイルにアクセスできます-これはChrome開発ツールを使用して見つかりました。
編集:Swashbuckle.AspNetCoreを使用している場合、URLは少し異なります-/swagger/v1/swagger.json
Swagger.NETをプロジェクトに統合して、次のコントローラーになるようにする必要があります。
public class SwaggerController : ApiController { /* snip */ }
また、次のルートも登録しておく必要があります。
context.Routes.MapHttpRoute (
name : "Swagger",
routeTemplate: "api/swagger"
defaults: new
{
controller = "Swagger",
action = "Get",
});
それが機能していると仮定すると、/ api/swaggerを呼び出して次のようなものを取得できるはずです。
{
apiVersion: "4.0.0.0",
swaggerVersion: "2.0",
basePath: "http://localhost:5555",
resourcePath: null,
apis: [
{
path: "/api/docs/Values",
description: "No Documentation Found.",
operations: [ ]
},
{
path: "/api/docs/Home",
description: "No Documentation Found.",
operations: [ ]
}
]
}
次に、SwaggerUI/index.htmlで、discoveryUrlを更新します。
<script type="text/javascript"> $(function () { window.swaggerUi = new SwaggerUi({ discoveryUrl: "http://localhost:5555/api/swagger", apiKey:"", dom_id:"swagger-ui-container", supportHeaderParams: false, supportedSubmitMethods: ['get', 'post', 'put'] }); window.swaggerUi.load(); }); </script>
「NSwagStudio」デスクトップアプリケーションを使用して、apiプロジェクトを実行せずにjsonドキュメントをロードできます。 APIアセンブリを提供する。
https://github.com/RSuter/NSwag/wiki/NSwagStudio
(NSwagStudio)Windowsデスクトップアプリケーションをダウンロードします。