Why do we need an API management system?

With the development of Web technology, the separation of front and back ends has become the way more and more Internet companies build applications. The advantage of front-end and back-end separation is that one SET of APIS can be reused by multiple clients, and the division of labor and collaboration is refined, which greatly improves the coding efficiency, but also brings some side effects:

  1. Interface documentation is unreliable. Many partners manage interface documents, including wiki, Word, and even chat software. The back-end interface is like a black box for the front end, and problems are often encountered because parameters are added to the interface for unknown reasons, parameter names are changed, and parameters are deleted.
  2. There is no unified exit for the test data generation scheme. We’ve all experienced front-end development functions that rely on back-end, solutions that inject JSON in their own code, and back-end engineers who temporarily set up a set of test data servers. In this case, productivity and code quality are inevitably affected, and timely updates are not available.
  3. Resources are scattered and cannot be shared. Interface debugging Each developer maintains a separate set of Postman interfaces, no one can share anyone else’s set of interfaces, there is a lot of re-filling of request parameters, and most importantly Postman is not associated with the interface definition, so there is no incentive for the back end to maintain interface documentation.

In addition to the above three points, the following problems will occur in our company’s development process:

  1. Because the development form of our company is multi-task parallel, the front-end and back-end go hand in hand and develop separately, although there is only one prototype, everyone may have more than one understanding, which leads to the field inconsistency, multi-field or few field problems when the current back-end interface is connected after the completion of their own front-end. Then one or both of them make changes to previously produced code, and a lot of time is wasted here.
  2. At present, the interface document of our project is mainly compiled by Word. Once there is a problem with the interface, the process of changing the document will be very tedious and time-consuming.

In addition to the above problems, we may encounter other problems, such as document export, module partition, ease of operation, and so on. With these problems, I have made a simple investigation of some interface management systems at home and abroad, and the following are recommended:

What API management systems are available?

  1. Ali mother front team released the rap, there are two versions, rap1 and rap2 this is I recommend an application of random search rap1 which is being promoted, its operation is simple, clear project module partition, able to perform multiple versions of the back, can interface directly copy or move to another place and open source. There is no export function, mock data is not available, online demo can not be used, it seems that no one is maintaining it now, but even so, it is still recommended by many netizens, of course, it is very smooth in the use of RAP1. Free and open source
  2. SwaggerIt is the world’s largest API development framework, based on “OpenAPI Declaration (OSA)”, supporting the development of the entire API life cycle. It can be integrated with SpringMVC and visualizes controller layer methods by combining swagger-UI components, providing corresponding user interfaces such as method annotations, method parameters, method return values, etc.charge
    • Advantages:

      • Generate API documents online and test, easy to maintain;
      • It can be integrated with many different frameworks (besides SpringMVC, struts2, Jersey2, CXF, etc.) and has a wide range of applications;
      • During the test, there is no need to use the browser to enter the URL to access the Controller, which is easy to use and low cost to learn.
    • Disadvantages:

      • Without the export function, documents can only be viewed and tested online, but cannot be exported to a local computer.
      • Deployment is more troublesome, not easy to get started, the developer’s English requirements are higher.
  3. Eolinker is also really good, with a nice UI, import/export, version rollback, mock data, and constant iteration. I’m sure there will be more and more new features in the future, and it will be more relevant to the actual needs of users. But t he has one drawback which is fatal: it costs money. The free version can only be joined by five developers and can only be exported to Eolinker and HTML. You’ll have to pay to experience other features. Part of the fee
  4. YApiIs efficient, easy to use, powerful API management platform, aimed at development, products, testing personnel to provide more elegant interface management services. YApi can help developers easily create, publish and maintain APIS. YApi also provides users with excellent interactive experience. Developers only need to use the interface data writing tools provided by the platform and simple click operations to achieve interface management.The Apache License 2.0
    • Advantages:
      • Define the structure and documentation of the data returned by the interface based on Json5 and Mockjs, making it multiple times more efficient
      • The flat permission design ensures the management of large-scale enterprise-level projects and the ease of use
      • Interface debugging like Postman
      • Automated testing with support for Response assertion
      • MockServer adds mocks in addition to regular random mocks
      • Expected function, according to the set request filtering rules, return expected data
      • Support postman, HAR, Swagger data import
      • Free, open source, Intranet deployment, information is no longer afraid to leak
    • Disadvantages:
      • If you want to force a disadvantage, it is the module division of the project is not reasonable, such as: production schedule – factory calendar, such a hierarchical relationship can not be reflected.
  5. showdocIs an online document sharing tool ideal for IT teams, which can speed up the efficiency of communication between teams.Free and open source
    • features
      • With the development of mobile Internet, BaaS (Back-end as a Service) is becoming more and more popular. The server side provides API, APP side or web front end can easily call data. ShowDoc makes it very easy and quick to write beautiful API documentation.
      • Data dictionary (see Demo) A good data dictionary can easily explain the structure of your database to others, such as the definitions of individual fields.
      • You can use ShowDoc to write documentation for some of the tools, as well as technical specifications that the team can refer to
    • function
      • Share and Export
        • Responsive Web design that allows project documents to be shared to a computer or mobile device. You can also export the project to a Word file for offline viewing.
      • Rights management
        • Public projects and private projects
        • ShowDoc has both public and private projects. Public projects can be accessed by any logged-in or non-logged-in user, while private projects require password authentication. The password is set by the project author.
      • Project transfer
        • Project creators are free to transfer projects to other users of the site.
      • Members of the project
        • You can easily add and remove project members to ShowDoc projects. Project members can edit projects, but cannot transfer or delete them (only the project creator has permission)
      • Editing features
        • ShowDoc uses the Markdown editor for a great editing and reading experience. If you don’t know Markdown, please search “Get to know and get started with Markdown” in the search engine.
        • On the ShowDoc edit page, click the button at the top of the editor to easily insert the API template and data dictionary template. After the template is inserted, all that is left is to change the data, saving a lot of editing effort.
      • Version history
        • ShowDoc provides a historical version feature for your page, so you can easily restore the page to its previous version.
  6. Easy text files, allowing you to easily write and maintain high quality documents. From requirements documents, API documents, deployment documents, to user manuals, there are different types of documents to meet your requirements throughout the development cycle. Make it easy for collaborators to understand, and make it easier for successors to get started instead of just flipping through code. This is a document platform that makes writers feel comfortable, readers feel comfortable, and communication flow more smoothly. It’s not just API management

conclusion

This article only lists some of my favorite API management platforms, and I don’t have enough energy to experience them in detail. Readers who are interested can experience them by themselves.

The resources

Is there an open source API management system? – Answer by Liu Changfeng – Zhihu

YApi is a visual interface management platform that can be deployed locally, connecting back and forth to QA