Skip to content

Latest commit

 

History

History
 
 

README.md

Working API Gateway Examples

Have 10 minutes and want to solve a task with Membrane? These hands-on examples are ready to run and explore.

  • Docker
  • As Windows service
  • Deploy APIs from OpenAPI definitions
  • Validate requests, responses, and security
  • Rewriting API URLs
  • Shadow traffic to other environments (e.g., TEST)
  • Content-based routing (JSON, XML)
  • Dynamic routing with URI templates
  • Internal routing
  • Throttle API traffic
  • Use Groovy and JavaScript for scripting

Samples of scripting with JSONPath, XPath and the expression language you can find in the templating or orchestration folders.

  • Authentication and authorization with JWT, OAuth2 and OIDC
  • API keys and Basic Authentication
  • Cross-Origin Resource Sharing (CORS)
  • JSON protection
  • SSL/TLS
  • IP and host-based Access Control Lists
  • Form login
  • NTLM
  • Rate limiting
  • HTML-form validation
  • JSON-Schema validation
  • Authentication with external APIs
  • Samples for GET and POST callouts
  • Use for-loops for multiple callouts
  • Use if conditions to modify behavior
  • Externalize configuration with properties and environment variables
  • Build reusable plugin chains and create custom plugins
  • How to embed Membrane into your Java applications
  • Error handling
  • Store messages into files and databases
  • Service discovery with etcd
  • Create dynamic API responses using templates (JSON, XML, Text)
  • Generic JSON to XML and XML to JSON
  • Replacing with Regex
  • Transformation with Javascript
  • XML validation and XSLT transformation
  • Create XML plugins with DOM or StAX
  • Validation of SOAP messages against WSDL
  • REST to SOAP conversion and migration
  • Sample SOAP service for testing
  • How to mock SOAP services
  • Add SOAP headers
  • SOAP versioning

Other Protocols

  • Validate GraphQL requests
  • STOMP over Websockets
  • Writing own Web Sockets plugins

Operation

  • OpenTelemetry & Prometheus
  • Access log
  • Log into console, CSV or databases
  • Structured JSON logs
  • Simple static setup
  • Dynamic node management
  • Session-based load balancing
  • Backend health checks
  • API Greasing