Swagger-RESTful Web API的智能文档-新手的初级后端开发人员评论



前言


我在编写工业代码方面迈出第一步的团队正在开发一种便捷的API,以实现C#中软件产品的功能(为方便起见,我们称其为字母E),该API已经存在了很多年,并且在市场上具有非常积极的一面。 在这里,似乎年轻的Padawan应该没有任何问题,但是可以想象,当然,更早,很可能是您编写了自己的Web API,但是对于广大读者来说却不太可能,这意味着您所遵循的原则是“我自己创建-我正在使用”,如果有人对您的API的功能感兴趣,那么您可能会向他抛出一个带有详细说明的pdf文件(至少我会这样做的)。 “在哪里可以看到api功能”-我问团队负责人,希望获得文本文件的链接。 “看看Swagger,”他回答。

等等,产品长期运行正常,您刚才正在编写的API如何?


是的,直到最近,E还没有便捷的公共API。 实际上,所有工作都是通过Web界面完成的,后端由许多内部微服务组成,如果不对内部业务逻辑有清晰的了解,就不可能从外部进行集成,更不用说它们本身由很大一部分遗产组成的事实。 有必要注意那些希望直接与服务器直接交互的客户端,这意味着为他们提供漂亮而便捷的API。 为此需要什么? 稍早编写的所有内容都是自己亲自与所有内部微服务建立联系,并提供方便,美观的文档,使其美观,可理解,并且最重要的是在商业上取得成功。

那么,什么是Swagger?它对世界有什么用?


本质上,Swagger是RESTful API规范的框架。 它的魅力在于,它不仅可以交互地查看规范,还可以发送请求-所谓的Swagger UI,如下所示:



正如我们所看到的-通常,所有方法的完整描述(包括模型,响应代码,查询参数)都非常清楚。

以及它如何运作?


在ASP.NET Core中实现Swagger的出色指南
本文从头开始。

这个想法是使用API​​方法的特殊注释来配置显示,下面是一个示例:





昂首阔步




如果确实需要,您可以根据Swagger API规范直接生成客户端或服务器,为此,您需要Swagger-Codegen代码生成器。 我认为不需要对文档中的描述进行解释:
这是Swagger Codegen项目,该项目允许在给定OpenAPI规范的情况下自动生成API客户端库(生成SDK),服务器存根和文档。 当前,支持以下语言/框架:

  • API客户端:ActionScript,Ada,Apex,Bash,C#(。net 2.0、3.5或更高版本),C ++(cpprest,Qt5,Tizen),Clojure,Dart,Elixir,Elm,Eiffel,Erlang,Go,Groovy,Haskell(http -client,Servant),Java(Jersey1.x,Jersey2.x,OkHttp,Retrofit1.x,Retrofit2.x,Feign,RestTemplate,RESTEasy,Vertx,适用于Java的Google API客户端库,请放心),Kotlin,Lua, Node.js(带有Google Closure Compiler批注的ES5,ES6,AngularJS)Objective-C,Perl,PHP,PowerShell,Python,R,Ruby,Rust(rust,rust-server),Scala(akka,http4s,swagger-async- httpclient),Swift(2.x,3.x,4.x),Typescript(Angular1.x,Angular2.x,Fetch,jQuery,Node)
  • 服务器存根:Ada,C#(ASP.NET Core,NancyFx),C ++(Pistache,Restbed),Erlang,Go,Haskell(Servant),Java(MSF4J,Spring,Undertow,JAX-RS:CDI,CXF,Inflector,RestEasy ,Play Framework,PKMST),Kotlin,PHP(流明,Slim,Silex,Symfony,Zend Expressive),Python(Flask),NodeJS,Ruby(Sinatra,Rails5),Rust(生锈服务器),Scala(Finch,Lagom,斯卡拉特拉(Scalatra)
  • API文档生成器:HTML,Confluence Wiki
  • 配置文件:Apache2
  • 其他:jmeter
其他信息,尤其是使用说明,在此处提供:
一般资讯

此处: 详细信息

结论


对于初学者API开发人员来说,这是一个简短的直观概述,其目的是概述Swagger是什么,为什么需要它以及从我个人的角度来看它具有哪些主要优点。

Source: https://habr.com/ru/post/zh-CN434798/


All Articles