Rewrite Request Body
Use a custom policy to rewrite the body of a Request
Rewrite Request Body#
This sample demonstrates how to rewrite the body of an incoming JSON request.
Use this example locally#
To develop with this example locally, you can create a new Zuplo project using our CLI
npx create-zuplo-api@latest my-api --example rewrite-request-body
Then, in the project directory run the following commands:
npm install
npm run dev
Then complete the following setup steps:
1/ Create Route#
Create a route that uses the URL Rewrite Handler. The rewrite points to the Zuplo Echo API at https://echo.zuplo.io.
2/ Add Policy#
Create a custom policy. This policy just takes body of the incoming request and adds two properties to the object.
Create an empty incoming policy called rewrite-body.ts
and add the following code to the function.
// Read the incoming body
const body = await request.json();
// Create a new body with additional properties
const outbound = {
...body,
id: crypto.randomUUID(),
createdOn: new Date(),
};
// Return a new request with the modified body
return new Request(request, {
body: JSON.stringify(outbound),
});
3/ Call the API#
The API can now be called and will return the echoed response. Note, the echo API returns a serialized version of the entire request so you will get back the body, url, headers, etc. In this example, you will see that the body has the original hello
property and two new properties id
and createdOn
curl -X POST https://API_URL/rewrite-body
-H "Content-Type: application/json"
-H "Authorization: user123"
-d '{"hello": "world" }'
Response:
{
"url": "https://echo.zuplo.io/rewrite-body",
"method": "POST",
"query": {},
"body": {
"hello": "world",
"id": "d06b3a27-b40e-48f2-934a-1585ab993e8a",
"createdOn": "2023-06-05T15:46:14.202Z"
},
...
}
Discover More Examples
Remote MCP Server with OAuth
A remote MCP Server that shows how to setup OAuth authentication with Auth0
Dev Portal with API Keys
An example of a Zuplo Dev Portal with support for self-serve API key creation.
Remote MCP Server
Create a remote MCP server for an API with authentication and additional security policies.
Metering with OpenMeter
Meter requests, enforce plan limits and monetize your API by integrating Zuplo with OpenMeter.