APISIX: The Apache API Gateway
Apache APISIX is a cloud-native API gateway with 80+ plugins. Rate limiting, auth, observability, traffic management — all configurable via REST API without restarts.
Why APISIX
- 80+ built-in plugins
- Dynamic config — no restarts
- Dashboard UI
- Multi-protocol: HTTP, gRPC, WebSocket, MQTT
- Lua/Wasm plugin development
The Free API
# Create a route
curl http://127.0.0.1:9180/apisix/admin/routes/1 \
-H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1" \
-X PUT -d "{\"uri\": \"/api/*\", \"upstream\": {\"type\": \"roundrobin\", \"nodes\": {\"127.0.0.1:8080\": 1}}}"
# Add rate limiting plugin
curl http://127.0.0.1:9180/apisix/admin/routes/1 \
-H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1" \
-X PATCH -d "{\"plugins\": {\"limit-count\": {\"count\": 100, \"time_window\": 60, \"rejected_code\": 429}}}"
# Add JWT auth
curl http://127.0.0.1:9180/apisix/admin/routes/1 \
-X PATCH -H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1" \
-d "{\"plugins\": {\"jwt-auth\": {}}}"
# Get route info
curl http://127.0.0.1:9180/apisix/admin/routes/1 \
-H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1"
# List all routes
curl http://127.0.0.1:9180/apisix/admin/routes \
-H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1"
Popular Plugins
| Plugin | What It Does |
|---|---|
| limit-count | Rate limiting |
| jwt-auth | JWT authentication |
| prometheus | Metrics export |
| cors | Cross-origin handling |
| proxy-rewrite | URL rewriting |
| traffic-split | Canary releases |
| fault-injection | Chaos testing |
Real-World Use Case
An API team managing 200 endpoints with nginx configs. Each change required restart and testing. APISIX: dynamic route creation via API, plugins added without restart, canary releases per route. Deploy time: minutes to seconds.
Quick Start
curl https://raw.githubusercontent.com/apache/apisix-docker/master/example/docker-compose.yml -o docker-compose.yml
docker-compose up -d
Resources
Need API monitoring data? Check out my tools on Apify or email spinov001@gmail.com for custom solutions.
Top comments (0)