从Servicestack api metadata / swagger生成javascript客户端

时间:2016-11-11 20:54:05

标签: servicestack swagger-codegen

有没有办法根据元数据/ Swagger自动生成ServiceStack javascript(无打字稿)客户端?将它以某种方式与webpack集成会很好。

我不确定是否可以使用swagger-js-codegen执行此操作(此包从swagger规范文件生成nodejs或angularjs类)。

实际上,swagger插件不共享服务来访问swagger.json以获得完整的模式(模式被分割)。是否有任何解决方法使用swagger codegen for javascript?

访问http://localhost:12116/resources即可获得

{"swaggerVersion":"1.2","apis":[{"path":"/resource/assignroles"},{"path":"/resource/auth"},{"path":"/resource/authenticate"},{"path":"/resource/criteria"},{"path":"/resource/import"},{"path":"/resource/tenders"},{"path":"/resource/unassignroles"}],"apiVersion":"1.0","basePath":"http://localhost:12116","info":{"title":"App"}}

并使用http://localhost:12116/resource/import

{"swaggerVersion":"1.2","apiVersion":"1.0","basePath":"http://localhost:12116","resourcePath":"/import","apis":[{"path":"/import/stats","operations":[{"method":"GET","nickname":"BrowseImportStats","parameters":[],"errorResponses":[]}]},{"path":"/import/tenders/changes/apply","operations":[{"method":"GET","nickname":"ApplyChanges","parameters":[],"errorResponses":[]},{"method":"POST","nickname":"ApplyChanges","parameters":[{"paramType":"body","name":"body","required":false,"allowMultiple":false,"type":"ApplyChanges"}],"errorResponses":[]},{"method":"PUT","nickname":"ApplyChanges","parameters":[{"paramType":"body","name":"body","required":false,"allowMultiple":false,"type":"ApplyChanges"}],"errorResponses":[]},{"method":"DELETE","nickname":"ApplyChanges","parameters":[],"errorResponses":[]}]},{"path":"/import/tenders/sync","description":"summary","operations":[{"method":"GET","summary":"summary","nickname":"ImportTenders","parameters":[],"errorResponses":[]}]}],"models":{"ImportTenders":{"id":"ImportTenders","properties":{}},"ApplyChanges":{"id":"ApplyChanges","properties":{}},"BrowseImportStats":{"id":"BrowseImportStats","description":"BrowseImportStats","properties":{}}}}

更新2016-11-26 我能够生成文档

C:\git\testapp>java -jar swagger-codegen-cli-2.2.1.jar generate -i http
://localhost:12116/resources -l javascript -o ./node_modules/testapp_api --additi
onal-properties emitJSDoc=false,usePromises=true

1 个答案:

答案 0 :(得分:1)

鉴于您已经使用OpenAPI / Swagger规范,您可以利用Swagger Codegen不仅生成JS API客户端,还生成其他语言(C#,Ruby,PHP,Python等),服务器存根(Spring)中的API客户端,NodeJS等)和API文档。

这是一个很好的起点:https://github.com/swagger-api/swagger-codegen#getting-started

(如果您不想安装任何内容,也可以在线生成代码:https://github.com/swagger-api/swagger-codegen#online-generators