DEV Community

namuan
namuan

Posted on • Edited on • Originally published at deskriders.dev

2

Developing API exchange sharing service - Part I

In this series of articles, I'll go through my experience of building a simple Serverless API using Flask python framework and deploying it on AWS Lambda and API gateway.

This API is used from HttpRider to save API exchanges (request+response).

Here is a sample page generated from HttpRider.

Demo

Quick Demo

The service itself consists of two simple APIs.

POST /prints

Saves the HTML encoded in base64 in dynamo database. Once it is saved, it returns the URL of the shared document in the Location header of the response.

POST /prints

Headers

Content-Type: application/json

Body

{
    "document": "SHR0cFJpZGVy"
}

Response

HTTP 201

Headers

location: http://localhost:8080/prints/025000cf-14ba-421b-a000-d2d043d4d90b

GET /prints/{print-id}

This GET request uses the URL from the location header in the previous request and receives the HTML response with the document.

GET /prints/025000cf-14ba-421b-a000-d2d043d4d90b

Headers

Accept: text/html

Response

HTTP 200

Headers

content-type: text/html; charset=utf-8

Body

<!DOCTYPE html>
<html>
<head>
    <title>Deskriders :: API Print</title>
    <style>
       .... removed to save space ...
    </style>
</head>
<body>
<div>HttpRider</div>
</body>
</html>

In the next part, we will look at setting up a new Flask project and serverless framework configuration to deploy it to AWS Lambda.

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →