Skip to content

Commit f7017f8

Browse files
authored
animated gif membrane demo (#2146)
* docs: animated gif * docs: animated gif * docs: animated gif
1 parent 7c401d1 commit f7017f8

File tree

2 files changed

+15
-13
lines changed

2 files changed

+15
-13
lines changed

README.md

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
[![GitHub release](https://img.shields.io/github/release/membrane/service-proxy.svg)](https://github.com/membrane/service-proxy/releases/latest)
66
[![Hex.pm](https://img.shields.io/hexpm/l/plug.svg)](https://raw.githubusercontent.com/membrane/api-gateway/master/distribution/router/LICENSE.txt)
77

8+
<img src="docs/images/api-gateway-demo.gif" alt="Animated demo of Membrane API Gateway" width="720"></img>
9+
810
Lightweight **API Gateway** for **REST**, **GraphQL** and **legacy SOAP Web Services**, easily extended with powerful plugins and Java.
911

1012
Solve even complex custom API requirements with simple configurations.
@@ -337,13 +339,13 @@ The configuration below demonstrates several routing rules:
337339

338340
### Configuration Options
339341

340-
| Option | Description |
341-
|----------|----------------------------------------------------------------------------|
342-
| `port` | port Membrane listens for incoming connections. |
343-
| `method` | - HTTP method (e.g., `GET`, `POST`, `DELETE`).<br>- `*` matchs any method. |
344-
| `host` | - Hostname e.g. `api.predic8.de`<br> - Supports basic globbing with `*` |
345-
| `test` | - Custum script e.g. `$pathParm.id == '42'`, `$header.contentType == '...'` |
346-
| `path` | - Request path<br>- Regular expressions can be used with `isRegExp="true"` |
342+
| Option | Description |
343+
|----------|-------------------------------------------------------------------------------|
344+
| `port` | port Membrane listens for incoming connections. |
345+
| `method` | - HTTP method (e.g., `GET`, `POST`, `DELETE`).<br>- `*` matches any method. |
346+
| `host` | - Hostname e.g. `api.predic8.de`<br> - Supports basic globbing with `*` |
347+
| `test` | - Custum script e.g. `$pathParam.id == '42'`, `$header.contentType == '...'` |
348+
| `path` | - Request path<br>- Regular expressions can be used with `isRegExp="true"` |
347349

348350
For more routing options, see the [Membrane API documentation](https://www.membrane-api.io/docs/current/api.html).
349351

@@ -358,7 +360,7 @@ The following configuration creates a health check endpoint that responds to req
358360
<api port="2000">
359361
<path>/health</path>
360362
<response>
361-
<static>I'am fine.</static>
363+
<static>I'm good.</static>
362364
</response>
363365
<return statusCode="200"/>
364366
</api>
@@ -431,7 +433,7 @@ The following API executes a Groovy script during the request and the response.
431433
```xml
432434
<api port="2000">
433435
<groovy>
434-
println "I'am executed in the ${flow} flow"
436+
println "I'm executed in the ${flow} flow"
435437
println "HTTP Headers:\n${header}"
436438
</groovy>
437439
<target url="https://api.predic8.de"/>
@@ -441,13 +443,13 @@ The following API executes a Groovy script during the request and the response.
441443
After invoking [http://localhost:2000](http://localhost:2000) you can see the following output in the console where you have started Membrane:
442444
443445
```text
444-
I'am executed in the REQUEST flow
446+
I'm executed in the REQUEST flow
445447
HTTP Headers:
446448
Host: localhost:2000
447449
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:133.0) Gecko/20100101 Firefox/133.0
448450
...
449451
450-
I'am executed in the RESPONSE flow
452+
I'm executed in the RESPONSE flow
451453
HTTP Headers:
452454
Content-Length: 390
453455
Content-Type: application/json
@@ -690,7 +692,7 @@ This template will transform the JSON input into plain text:
690692
691693
### Transform XML into Text or JSON
692694
693-
Using `setProperty` you can extract values from XML request or response bodies and store it in properties. Then the properties are available as variables inside `template`.
695+
Using `setProperty` you can extract values from XML request or response bodies and store it in properties. Then the properties are available as variables inside the `template` plugin.
694696
plugin.
695697
696698
```xml
@@ -1011,7 +1013,7 @@ The `jsonProtection` plugin safeguards APIs from JSON-based vulnerabilities by s
10111013
10121014
- **Depth**: Prevents overly nested JSON structures.
10131015
- **Key Length**: Restricts excessively long keys.
1014-
- **Object Size**: Maximum number of fields in aJSON object.
1016+
- **Object Size**: Maximum number of fields in a JSON object.
10151017
- **String Length**: Controls maximum length of string values.
10161018
- **...**
10171019

docs/images/api-gateway-demo.gif

398 KB
Loading

0 commit comments

Comments
 (0)