Membrane API Gateway
is a reverse HTTP proxy and framework written in Java, licensed under the ASF 2.0 Open Source License, that can be used to:
- create APIs out of REST and SOAP services
- integrate services over HTTP
- expose internal services to the internet
- secure services
- convert Web Services to REST resources
Follow the SOAP and REST tutorials or have a look at the examples to get started.
Hosting virtual REST services is easy:
<api> port="80"> <path>/restnames/</path> <target host="www.thomas-bayer.com" /> </api>
By default SOAP proxies configure themselves from WSDL:
A console shows all details of the configuration, statistics and recent requests:
Follow the SOAP Quick Start Guide to learn how to use a soapProxy, XML Schema validation and SOAP Stack Trace Filtering.
What's new in 4.6.0
Exchange stores are now cloud compatible. The new elastic search exchange store saves and retrieves exchanges from a remote elastic search instance - fully compatible with the Membrane admin console.
The startup of Membrane always was opaque. For this release we added the option to specify optional JVM parameters through the JAVA_OPTS environment variable. Limiting Membranes resources or enabled JVM flags is now easier than ever.
SSL/TLS support is a staple feature of Membrane. You can now optionally tell Membrane to check the certificate revocation list so no revoked certificates are trusted.
What's new in 4.5.0
Membrane now supports HTTP payload of sizes bigger than 2GB. This enables e.g. uploads of big files to services that are routed through Membrane. To reduce memory usage streaming can be enabled so exchanges do not stay in memory.
Now it is easier than every to deliver dynamic content through Membrane. You could already use the Groovy interceptor to respond with dynamically created content. The Groovy templating interceptor now enables you to deliver fully templated HTML content.
In need of live metrics collection of your running Membrane Service Proxy instance? The Prometheus interceptor has you covered. The Prometheus interceptor delivers metrics that can be processed by Prometheus or Grafana.
Enhancements to WebSockets and OAuth2/OpenID are also included.
What's new in 4.4.0
WebSocket routing just got even better with this version! WebSocket traffic could be routed since version 4.2.0 but it was a black box experience. Traffic was streamed through Membrane but the content that was sent over the wire was hidden.
Enter WebSocket intercepting! The WebSocket intercepting feature now enables you to read and manipulate the contents of any WebSocket traffic going through Membrane. For this you can define WebSocket interceptors that process incoming WebSocket frames.
In addition to pure WebSockets Membrane now also supports STOMP over WebSockets up to and including version 1.2. STOMP messages are mapped to Membrane exchanges and normal interceptors can be run on these "STOMP exchanges".
Get started with WebSockets and STOMP over WebSockets .
- SOAP to REST conversion
- Open Source under ASF 2.0 licence
- HTTP loadbalancing
- URL rewriting
- Performance statistics (DB or CSV)
- Access control
- Embeddable into any Java application
- Very fast
- Flexible spring configuration
- Commandline interface and Web Console
- Reverse proxy
- OAuth 2.0
- WebSocket routing and intercepting
- STOMP over WebSockets
- Rewriting of endpoints and schemaLocations in WSDL
- Web Services Loadbalancing
- Validates SOAP messages against WSDL
Find tutorials, references and step by step explanations in the documentation.
Problems and Support
You can browse the Membrane Monitor Mailing List at Google Groups. Post any questions, feature requests and feedback to the list. A subscription is not needed for posting. You also can get commercial support for the Membrane products.
The Membrane Service Proxy software is provided under the terms of the Apache License Version 2.0. The software contains external components and libraries. See the notice regarding external components in the distribution archives.