Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/stone-payments/kong-plugin-url-rewrite

Kong API Gateway plugin for url-rewrite purposes
https://github.com/stone-payments/kong-plugin-url-rewrite

api-gateway kong kong-plugin satisfacao-do-cliente

Last synced: 3 months ago
JSON representation

Kong API Gateway plugin for url-rewrite purposes

Awesome Lists containing this project

README

        

[![Build Status](https://travis-ci.org/stone-payments/kong-plugin-url-rewrite.svg?branch=master)](https://travis-ci.org/stone-payments/kong-plugin-url-rewrite)

# Kong-plugin-url-rewrite

Kong API Gateway plugin for url-rewrite purposes. This plugin has been tested to work along with kong >= 2.6.x, for a legacy version of this plugin, please check [this link](https://github.com/stone-payments/kong-plugin-url-rewrite/tree/legacy/v0).

## The Problem

When using Kong, you can create routes that proxy to an upstream. The problem lies when the upstream has an url that is not very friendly to your clients, or restful, or even pretty. When you [add a Route in Kong](https://docs.konghq.com/0.14.x/admin-api/#add-route), you have a [somewhat limited](https://docs.konghq.com/0.14.x/proxy/#routes-and-matching-capabilities) url rewrite capability. This plugin simply throws away the url set in Kong route and uses the url set in it's configuration to proxy to the upstream. This gives you full freedom as to how to write your url's in Kong and inner services as well.

## Project Structure

The plugin folder should contain at least a `schema.lua` and a `handler.lua`, alongside with a `spec` folder and a `.rockspec` file specifying the current version of the package.

## Rockspec Format

The `.rockspec` file should follow [LuaRocks' conventions](https://github.com/luarocks/luarocks/wiki/Rockspec-format)

## Configuration

### Enabling the plugin on a Route

Configure this plugin on a Route with:

```bash
curl -X POST http://kong:8001/routes/{route_id}/plugins \
--data "name=kong-plugin-url-rewrite" \
--data "config.url=http://new-url.com"
```

- route_id: the id of the Route that this plugin configuration will target.
- config.url: the url where you want kong to execute the request.

## Developing

### In docker

```bash
docker build . -t kong-plugin-url-rewrite-dev
docker run -it -v ${PWD}/url-rewrite:/url-rewrite kong-plugin-url-rewrite-dev bash
```

## Credits

made with :heart: by Stone Payments