What is Amazon API Gateway and what are its top alternatives?
Top Alternatives to Amazon API Gateway
API management, design, analytics, and security are at the heart of modern digital architecture. The Apigee intelligent API platform is a complete solution for moving business to the digital world. ...
Kong is a scalable, open source API Layer (also known as an API Gateway, or API Middleware). Kong controls layer 4 and 7 traffic and is extended through Plugins, which provide extra functionality and services beyond the core platform. ...
nginx [engine x] is an HTTP and reverse proxy server, as well as a mail proxy server, written by Igor Sysoev. According to Netcraft nginx served or proxied 30.46% of the top million busiest sites in Jan 2018. ...
It is the front door for all requests from devices and websites to the backend of the Netflix streaming application. As an edge service application, It is built to enable dynamic routing, monitoring, resiliency, and security. Routing is an integral part of a microservice architecture. ...
- Azure API Management
Today's innovative enterprises are adopting API architectures to accelerate growth. Streamline your work across hybrid and multi-cloud environments with a single place for managing all your APIs. ...
It is the only complete API development environment, used by nearly five million developers and more than 100,000 companies worldwide. ...
- Insomnia REST Client
Insomnia is a powerful REST API Client with cookie management, environment variables, code generation, and authentication for Mac, Window, and Linux. ...
It is probably the most popular HTTP client library for .NET. Featuring automatic serialization and deserialization, request and response type detection, variety of authentications and other useful features ...
Amazon API Gateway alternatives & related posts
- Highly scalable and secure API Management Platform12
- Quick jumpstart6
- Good documentation5
- Fast and adjustable caching3
- Easy to use3
related Apigee posts
- Easy to maintain36
- Easy to install31
- Great performance20
- Api blueprint5
- Custom Plugins4
- Load balancing1
- Documentation is clear1
- Has a good plugin infrastructure1
- Very customizable1
related Kong posts
As for the new support of service mesh pattern by Kong, I wonder how does it compare to Istio?
We needed a lightweight and completely customizable #microservices #gateway to be able to generate #JWT and introspect #OAuth2 tokens as well. The #gateway was going to front all #APIs for our single page web app as well as externalized #APIs for our partners.Contenders
We looked at Tyk Cloud and Kong. Kong's plugins are all Lua based and its core is NGINX and OpenResty. Although it's open source, it's not the greatest platform to be able to customize. On top of that enterprise features are paid and expensive. Tyk is Go and the nomenclature used within Tyk like "sessions" was bizarre, and again enterprise features were paid.Decision
We ultimately decided to roll our own using ExpressJS into Express Gateway because the use case for using ExpressJS as an #API #gateway was tried and true, in fact - all the enterprise features that the other two charge for #OAuth2 introspection etc were freely available within ExpressJS middleware.Outcome
We opened source Express Gateway with a core set of plugins and the community started writing their own and could quickly do so by rolling lots of ExpressJS middleware into Express Gateway
- High-performance http server1.4K
- Easy to configure728
- Open source606
- Load balancer529
- Web server223
- Easy setup135
- Content caching29
- Web Accelerator20
- Reverse Proxy7
- Supports http/26
- The best of them5
- Great Community4
- Lots of Modules4
- Enterprise version4
- High perfomance proxy server3
- Embedded Lua scripting3
- Reversy Proxy3
- Streaming media delivery3
- Streaming media3
- Fast and easy to set up2
- Virtual hosting1
- Along with Redis Cache its the Most superior1
- Ingress controller1
- Narrow focus. Easy to configure. Fast1
- Advanced features require subscription8
related NGINX posts
Recently I have been working on an open source stack to help people consolidate their personal health data in a single database so that AI and analytics apps can be run against it to find personalized treatments. We chose to go with a #containerized approach leveraging Docker #containers with a local development environment setup with Docker Compose and nginx for container routing. For the production environment we chose to pull code from GitHub and build/push images using Jenkins and using Kubernetes to deploy to Amazon EC2.
We also implemented a dashboard app to handle user authentication/authorization, as well as a custom SSO server that runs on Heroku which allows experts to easily visit more than one instance without having to login repeatedly. The #Backend was implemented using my favorite #Stack which consists of FeathersJS on top of Node.js and ExpressJS with PostgreSQL as the main database. The #Frontend was implemented using React, Redux.js, Semantic UI React and the FeathersJS client. Though testing was light on this project, we chose to use AVA as well as ESLint to keep the codebase clean and consistent.
We switched to Traefik so we can use the REST API to dynamically configure subdomains and have the ability to redirect between multiple servers.
We still use nginx with a docker-compose to expose the traffic from our APIs and TCP microservices, but for managing routing to the internet Traefik does a much better job
The biggest win for naologic was the ability to set dynamic configurations without having to restart the server
- Load blancing8
related Zuul posts
related Azure API Management posts
- Easy to use487
- Great tool369
- Makes developing rest api's easy peasy274
- Easy setup, looks good155
- The best api workflow out there143
- It's the best53
- History feature53
- Adds real value to my workflow44
- Great interface that magically predicts your needs42
- The best in class app34
- Can save and share script11
- Fully featured without looking cluttered9
- Option to run scrips7
- Global/Environment Variables7
- Dead simple and useful. Excellent6
- Shareable Collections6
- Dark theme easy on the eyes6
- Awesome customer support5
- Great integration with newman5
- The test script is useful4
- Easy as pie3
- Saves responses3
- Makes testing API's as easy as 1,2,33
- This has simplified my testing significantly3
- I'd recommend it to everyone who works with apis2
- Mocking API calls with predefined response2
- Easy to setup, test and provides test storage1
- Postman Runner CI Integration1
- Now supports GraphQL1
- Continuous integration using newman1
- Pre-request Script and Test attributes are invaluable1
- <a href="http://fixbit.com/">useful tool</a>0
- Stores credentials in HTTP9
- Cumbersome to switch authentication tokens8
- Bloated features and UI8
- Poor GraphQL support7
- Can't prompt for per-request variables3
- Not free after 5 users2
- Import curl1
- Support websocket1
- Import swagger1
related Postman posts
We just launched the Segment Config API (try it out for yourself here) — a set of public REST APIs that enable you to manage your Segment configuration. A public API is only as good as its #documentation. For the API reference doc we are using Postman.
Postman is an “API development environment”. You download the desktop app, and build API requests by URL and payload. Over time you can build up a set of requests and organize them into a “Postman Collection”. You can generalize a collection with “collection variables”. This allows you to parameterize things like
workspace_name so a user can fill their own values in before making an API call. This makes it possible to use Postman for one-off API tasks instead of writing code.
Then you can add Markdown content to the entire collection, a folder of related methods, and/or every API method to explain how the APIs work. You can publish a collection and easily share it with a URL.
This turns Postman from a personal #API utility to full-blown public interactive API documentation. The result is a great looking web page with all the API calls, docs and sample requests and responses in one place. Check out the results here.
Postman’s powers don’t end here. You can automate Postman with “test scripts” and have it periodically run a collection scripts as “monitors”. We now have #QA around all the APIs in public docs to make sure they are always correct
Along the way we tried other techniques for documenting APIs like ReadMe.io or Swagger UI. These required a lot of effort to customize.
Writing and maintaining a Postman collection takes some work, but the resulting documentation site, interactivity and API testing tools are well worth it.
Our whole Node.js backend stack consists of the following tools:
- Lerna as a tool for multi package and multi repository management
- npm as package manager
- NestJS as Node.js framework
- TypeScript as programming language
- ExpressJS as web server
- Swagger UI for visualizing and interacting with the API’s resources
- Postman as a tool for API development
- TypeORM as object relational mapping layer
- JSON Web Token for access token management
The main reason we have chosen Node.js over PHP is related to the following artifacts:
- Flexibility: Node.js sets very few strict dependencies, rules and guidelines and thus grants a high degree of flexibility in application development. There are no strict conventions so that the appropriate architecture, design structures, modules and features can be freely selected for the development.
- Easy to work with16
- Great user interface11
- Works with GraphQL6
- Cross platform, available for Mac, Windows, and Linux3
- Preserves request templates2
- Does not have history feature0
- Vim and Emacs key map0
- Do not have team sharing options4
- Do not store credentials in HTTP2
related Insomnia REST Client posts
We've tried a couple REST clients over the years, and Insomnia REST Client has won us over the most. Here's what we like about it compared to other contenders in this category:
- Uncluttered UI. Things are only in your face when you need them, and the app is visually organized in an intuitive manner.
- Native Mac app. We wanted the look and feel to be on par with other apps in our OS rather than a web app / Electron app (cough Postman).
- Easy team sync. Other apps have this too, but Insomnia's model best sets the "set and forget" mentality. Syncs are near instant and I'm always assured that I'm working on the latest version of API endpoints. Apps like Paw use a git-based approach to revision history, but I think this actually over-complicates the sync feature. For ensuring I'm always working on the latest version of something, I'd rather have the sync model be closer to Dropbox's than git's, and Insomnia is closer to Dropbox in that regard.
Some features like automatic public-facing documentation aren't supported, but we currently don't have any public APIs, so this didn't matter to us.