Couper is a lightweight API gateway for developers. It reduces the complexity of the core application code by adding access control, observability and service connectivity on a separate architectural component.
Couper is a proxy component forwarding requests and responses bidirectionally between clients and upstream services. Create virtual endpoints and configure the upstream URLs based on the original client request.
Couper is more than a proxy component as it lets you define custom requests to any remote or upstream service. You can also send custom responses back to the client.
Example: Custom Requests
Example: Multiple Requests
Example: Static Responses
Couper lets you decide which headers and path parameters you want to send to the upstream service and which headers you want to send back to the client.
Example: Path Parameters
Example: Query Parameters
Example: Sending JSON Content
Example: Sending Form Content
Couper acts as a centralized access control layer that is easy to configure. It offers Basic Authentication, JWT signing, validation, and header passing as well as SAML and OAuth 2.0 Client Credentials.
Example: JWT Access Control
Example: Sending JWT Claims Upstream
Example: Creating JWT
Example: Single-Sign-On with SAML
Example: OAuth2 Client Credentials
Example: OIDC
Couper helps you to overcome the challenges associated with distributed computing. Fight unreliable networks and long latencies by configuring your timeouts and connection pools.
Couper secures your communication by validating upstream requests and responses against an OpenAPI 3 schema. CORS behaviour can also be configured.
Couper comes with a good old web server that serves static files on the clients’ demand and allows you to easily handle SPA bootstrap document serving.
Couper offers uniform error handling across different back-end services and lets you send your own project-related HTML errors. You can also create custom errors.
Example: Error Handling for Access Controls
Documentation: Errors
Couper pays special attention to developer experience: we have chosen HCL as an easily understandable configuration language. Besides, we support you with the tools you require but also give you the freedom you need.
Example: Kubernetes configuration
Example: Using docker-compose
Example: Linking Docker Containers
Example: Environment Variables
Get the Couper Extension from the Visual Studio Marketplace
Couper offers standard logs with request context IDs for analysis and monitoring and provides a health check for Couper. Further monitoring can be achieved with enabled metrics and our Grafana dashboard.
Example: Custom Logging
Documentation: LoggingDocumentation: Metrics
Visit the example repository to learn about Couper's features in detail. If you prefer a quick dive in, have a look at our getting started tutorial.
Get Started