Another good usage of AWS is API .So let's explore by creating one …
Amazon Web Services (AWS) offers a set of APIs (Application Programming Interfaces) that allow developers to access and interact with various AWS services. These APIs enable developers to programmatically perform tasks such as creating and managing Amazon EC2 instances, storing and retrieving data from Amazon S3, and more.
AWS APIs use a request-response model, where a client sends a request to the API and the API returns a response. The API’s request and response parameters are defined in a metadata document called the API Gateway API Model Schema (formerly known as the Swagger specification). This document specifies the API’s resources, methods, request parameters, and response parameters.
There are 3 ways to create AWS API:
AWS Management Console
AWS CLI (Command Line Interface)
AWS SDKs
Using AWS Management Console
Here is an example of how to create a REST API in AWS using the AWS Management Console:
- Go to the AWS Management Console and sign in to your AWS account.
- In the Services menu, go to the API Gateway section.
- Click the “Create API” button.
- Select “New API” and give your API a name and description. For this example, let’s call the API “Example API” and give it a description of “This is an example API.”
- Define the resources and methods for your API. For this example, let’s create a resource called “customers” with a GET method that retrieves a list of customers from a database. To create the resource and method, do the following:
- Click the “Actions” dropdown menu and select “Create Resource.” Give the resource the name of “customers” and click “Create Resource.”
- Click the “Actions” dropdown menu again and select “Create Method.” Select the GET method and click the checkmark to save the method.
- Set up the request and response parameters for the method. To do this, click on the GET method in the resources tree and then click the “Integration Request” button in the Method Execution panel. From here, you can define the request parameters and mapping templates for the method. For this example, let’s set up a request parameter called “id” that will be used to retrieve a specific customer from the database.
- Repeat steps 6–8 for each resource and method you want to include in your API.
- Deploy the API to make it available to your clients. To do this, click the “Actions” dropdown menu and select “Deploy API.” Select the deployment stage (e.g., test, production) and click “Deploy.”
You can then test the API by using a tool like Postman to send a GET request to the API’s URL. For example, if the API’s URL is https://abc123.execute-api.us-east-1.amazonaws.com/test/customers, you could send a GET request to https://abc123.execute-api.us-east-1.amazonaws.com/test/customers?id=123 to retrieve the customer with an ID of 123.
Using AWS CLI:
To create a REST API in AWS using the AWS CLI, you can use the create-rest-api
command. Here is an example of how to create a REST API in AWS using the AWS CLI:
- First, install the AWS CLI and configure it with your AWS access keys.
- Next, create a file called
create-api.json
that contains the following JSON configuration for your API:
{
"name": "Example API",
"description": "This is an example API",
"endpointConfiguration": {
"types": [
"REGIONAL"
]
}
}
- Run the
create-rest-api
command, specifying thecreate-api.json
file as the input:
aws apigateway create-rest-api --cli-input-json file://create-api.json
This will create a new REST API with the name and description specified in the create-api.json
file.
To define the resources and methods for the API, you can use the create-resource
and put-method
commands. For example, to create a resource called "customers" with a GET method, you can use the following commands:
aws apigateway create-resource --rest-api-id <api-id> --parent-id <api-id> --path-part customers
aws apigateway put-method --rest-api-id <api-id> --resource-id <resource-id> --http-method GET --authorization-type NONE
Replace <api-id>
and <resource-id>
with the ID of your API and the ID of the "customers" resource, respectively.
To set up the request and response parameters for the method, you can use the put-integration
and put-method-response
commands. For example:
aws apigateway put-integration --rest-api-id <api-id> --resource-id <resource-id> --http-method GET --type HTTP --uri <backend-uri>
aws apigateway put-method-response --rest-api-id <api-id> --resource-id <resource-id> --http-method GET --status-code 200
Replace <backend-uri>
with the URI of your backend service.
Finally, to deploy the API and make it available to your clients, you can use the create-deployment
command:
aws apigateway create-deployment --rest-api-id <api-id> --stage-name test
This will create a deployment of the API in the “test” stage.
Using AWS SDK
To create a REST API in AWS using an AWS SDK, you will need to use the AWS SDK for your programming language of choice. Here is an example of how to create a REST API in AWS using the AWS SDK for Python:
- First, install the AWS SDK for Python using
pip
:
pip install boto3
- Next, import the
boto3
library and create a client for the API Gateway service:
import boto3
client = boto3.client('apigateway')
- Use the
create_rest_api
method to create a new REST API:
response = client.create_rest_api(
name='Example API',
description='This is an example API',
endpointConfiguration={
'types': [
'REGIONAL'
]
}
)
api_id = response['id']
This will create a new REST API with the name and description specified. The api_id
variable will contain the ID of the API.
To define the resources and methods for the API, you can use the create_resource
and put_method
methods. For example, to create a resource called "customers" with a GET method, you can use the following code:
response = client.create_resource(
restApiId=api_id,
parentId=api_id,
pathPart='customers'
)
resource_id = response['id']client.put_method(
restApiId=api_id,
resourceId=resource_id,
httpMethod='GET',
authorizationType='NONE'
)
To set up the request and response parameters for the method, you can use the put_integration
and put_method_response
methods. For example:
client.put_integration(
restApiId=api_id,
resourceId=resource_id,
httpMethod='GET',
type='HTTP',
uri='<backend-uri>'
)
client.put_method_response(
restApiId=api_id,
resourceId=resource_id,
httpMethod='GET',
statusCode='200'
)
Replace <backend-uri>
with the URI of your backend service.
Finally, to deploy the API and make it available to your clients, you can use the create_deployment
method:
client.create_deployment(
restApiId=api_id,
stageName='test'
)
This will create a deployment of the API in the “test” stage.
Ta-da !! that covers API creation using AWS .Happy Coding !!