Wait, how is it that the product has been successfully operating for a long time, and you are writing API to it just now?
That's right, as such, a convenient public API from E until recently did not exist. In fact, all the work took place through a web interface, and the back-end consisted of many internal microservices with which it was impossible to integrate from the outside without a clear understanding of internal business logic, let alone that they themselves consisted of a large proportion of Legacy. It was necessary to pay attention to customers who want to directly interact with the server, and therefore provide them with a beautiful and convenient API. What is required for this? All that was written a little earlier was to take and set up work with all internal microservices, as well as provide convenient and beautiful documentation, making it beautiful, understandable, and most importantly - commercially successful.
This is the Swagger Code project, the client stubs and documentation automatically given an OpenAPI Spec. Currently, the following languages / frameworks are supported:Other information, in particular the instructions for use, is presented here:
- API clients: ActionScript, Ada, Apex, Bash, C # (.net 2.0, 3.5 or later), 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, Google API Client Library for Java, Rest-assured), Kotlin, Lua, Node.js (ES5, ES6, AngularJS with Google Closure Compiler annotations) 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)
- Server stubs: 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 (Lumen, Slim, Silex, Symfony, Zend Expressive), Python (Flask), NodeJS, Ruby (Sinatra, Rails5), Rust (rust-server), Scala (Finch, Lagom, Scalatra)
- API documentation generators: HTML, Confluence Wiki
- Configuration files: Apache2
- Others: JMeter
Source: https://habr.com/ru/post/434798/