Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 31 additions & 41 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ Learn how API Gateways work with real-world examples and insights into Membrane.
- Streams HTTP traffic for low-latency, non-blocking processing.
- Reuses TCP connections via HTTP Keep-Alive to reduce request overhead.
- Lightweight distribution (~55MB) compared to other Java-based gateways.
- Low memory footprintideal for containers and cloud-native environments.
- Low memory footprint, ideal for containers and cloud-native environments.
- Java-based, yet competitive with C/C++ gateways in performance.

# Content
Expand Down Expand Up @@ -135,53 +135,42 @@ Learn how API Gateways work with real-world examples and insights into Membrane.
- [Monitoring with Prometheus and Grafana](#monitoring-with-prometheus-and-grafana)
- [OpenTelemetry](#opentelemetry-integration)

# Getting Started
# Installation

## Java

### Prerequisites
- Ensure **Java 21** or newer is installed.
You can run Membrane as Docker container, standalone Java application or install it on Linux as RPM.

### Setup and Run
1. **Download and Extract**
- Get the latest [binary release](https://github.com/membrane/api-gateway/releases) and unzip it.
## Java

1. **Download and extract**
- [Download a release](https://github.com/membrane/api-gateway/releases) and unzip it.
2. **Start the Gateway**
- Open a terminal in the extracted directory.
- Run the appropriate command:
- Open a terminal in the extracted folder.
- Make sure Java 21 or newer is installed:
```bash
java -version
```
- Start:
- **Linux/Mac:** `./membrane.sh`
- **Windows:** `membrane.cmd`
4. **Access the Gateway**
- Open [http://localhost:2000](http://localhost:2000)
5. **Change the Configuration**

3. **Access the Gateway**
- Open [http://localhost:2000](http://localhost:2000) in your browser.
- The gateway will forward traffic to [https://api.predic8.de](https://api.predic8.de) by default.

4. **Modify Configuration**
- Customize the behavior, by editing the file `conf/proxies.xml`.

Modify the preconfigured APIs or add APIs by editing the `proxies.xml` file in the `conf` folder.

## Docker

### Quick Start

1. **Start the Gateway**

Run Membrane in a container:
1. **Start a Membrane container**
```bash
docker run -p 2000:2000 predic8/membrane
```

```
2. **Access the Gateway**

Open [http://localhost:2000](http://localhost:2000) in your browser, or use `curl`:
```bash
curl http://localhost:2000
```
The response will match the output of directly calling [https://api.predic8.de](https://api.predic8.de).
Test a preconfigured API by opening [http://localhost:2000](http://localhost:2000).

3. **Changing the Configuration**

To use a custom [proxies.xml](distribution/router/conf/proxies.xml) configuration file, bind it to the Membrane container.
3. **Change the Configuration**
- Download [proxies.xml](distribution/router/conf/proxies.xml) and modify it
- Bind the configuration file to the container.

#### For Windows/Linux:
```bash
Expand All @@ -193,23 +182,24 @@ Learn how API Gateways work with real-world examples and insights into Membrane.
docker run -v "$(pwd)/proxies.xml:/opt/membrane/conf/proxies.xml" -p 2000:2000 predic8/membrane
```

### Learn More
For detailed Docker setup instructions, see the [Membrane Deployment Guide](https://membrane-api.io/deployment/#docker).


## Next Steps
## Getting Started

### Explore and Experiment
- Try the code snippets below.
- Run the samples in the [examples](/distribution/examples#working-api-gateway-examples) folder of the unzipped distribution.
- Try the code snippets on this page.
- Run the samples in the [examples](distribution/examples#working-api-gateway-examples) folder of the distribution.

### Dive into Tutorials
- Follow the [REST API Tutorial](https://membrane-api.io/tutorials/rest/) to learn about deploying and securing RESTful services.
- Follow the [REST API Tutorial](https://membrane-api.io/tutorials/rest/) to learn about deploying and securing APIs.
- Check out the [SOAP API Tutorial](https://membrane-api.io/tutorials/soap/) for legacy web service integration.

### Read the Documentation
### Documentation

- For detailed guidance, visit the [official documentation](https://www.membrane-api.io).
- Read the [API Gateway eBook](https://www.membrane-api.io/api-gateway-ebook.html)
- Look at the [documentation](https://www.membrane-api.io).
- Browse the [reference](https://www.membrane-api.io/docs/)
- Try the recipes from the [cookbook](https://www.membrane-api.io/api-gateway-cookbook.html)

# Basics

Expand Down
3 changes: 0 additions & 3 deletions docs/ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,6 @@

# 6.3.0

- Refactor MessageUtil (TB)
- MessageUtil: Remove getXRequest and use Request Builder instead
- Describe RPM Setup
- examples/routing-traffic/outgoing-api-gateway (TB)
- Cook Book: outgoing-api-gateway (TB)
Expand All @@ -46,7 +44,6 @@
- Pretty on text should trim whitespace incl. linebreaks at start and end
- READMEs in example folders listing the examples (TB)
- Refactor HttpClient (TB)
- SampleSOAPService: Add some more cities
- Refactor: interceptor.session

### Internal
Expand Down
Binary file modified docs/images/api-gateway-ebook-cover.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.