GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - tayron/serverless-api-python: API feita em Python para estudo do Serveless Framework e deploy na AWS usando Lambda e API Gateway

BranchesTags
Open more actions menu

Latest commit

 

History

14 Commits
14 Commits

Folders and files

NameName
Last commit message
Last commit date
.serverless
.serverless
 
 
node_modules
node_modules
 
 
src
src
 
 
.gitignore
.gitignore
 
 
README.md
README.md
 
 
package-lock.json
package-lock.json
 
 
package.json
package.json
 
 
serverless.yml
serverless.yml
 
 

Repository files navigation

API Serverless

Descrição

Exemplo de uma API Serverless usando Serverless Framework e deploy no AWS utilizando os serviços:

  • AWS Lambda
  • API Gateway
  • DynamoDB

Tutorial seguido

  • https://solvimm.com/blog/como-construir-sua-primeira-api-na-nuvem-com-o-serverless-framework
  • https://solvimm.com/blog/como-adicionar-uma-chave-de-autorizacao-de-api-com-o-serverless-framework
  • https://solvimm.com/blog/como-usar-variaveis-com-o-serverless-framework
  • https://solvimm.com/blog/integracao-de-api-com-dynamodb-utilizando-o-serverless-framework

Comandos

Comando para gravar credencial localmente da AWS:

serverless config credentials \
--provider aws \
--key apiKeyAqui \
--secret chaveSecretaAqui \
--profile my-aws-profile

Comando para realizar deploy:

Dependências
  • npm install serverless-iam-roles-per-function

Para fazer deploy e manter o stage padrão: dev serverless deploy --aws-profile my-aws-profile

Para fazer deploy e alterar o stage padrão: dev para prod serverless deploy --aws-profile my-aws-profile --stage prod

O resultado do comando será algo parecido com

....
Serverless: Stack update finished...
Service Information
service: api-python-hello-world
stage: dev
region: us-east-1
stack: api-python-hello-world-dev
resources: 16
api keys:
  myKey: CCJZsdfgzrbxi0shwR8e2Yasdfaz0bOG6A5hlJc7Ui
endpoints:
  GET - https://aaa.execute-api.aa-aa-1.amazonaws.com/dev/api/python/hello-world
functions:
  hello: api-python-hello-world-dev-hello
layers:
  None

Chave da API se encontra na reposta

api keys:
  myKey: CCJZsdfgzrbxi0shwR8e2Yasdfaz0bOG6A5hlJc7Ui

Chave da API deve ser passado no header da requisição:

x-api-key: CCJZsdfgzrbxi0shwR8e2Yasdfaz0bOG6A5hlJc7Ui

Comando para remover api em produção:

serverless remove --aws-profile my-aws-profile --stage dev

Requisição

Exemplo de requisição na API para exibir o Helo World:

curl --request GET \
  --url https://7cq8ind2me.execute-api.us-east-1.amazonaws.com/dev/api/python/hello-world \
  --header 'x-api-key: CCJZsdfgzrbxi0shwR8e2Yasdfaz0bOG6A5hlJc7Ui'

Exemplo de requisição na API para listar todos os contatos:

curl -X GET
-H "x-api-key: CCJZsdfgzrbxi0shwR8e2Yasdfaz0bOG6A5hlJc7Ui" \
https://8nncm9w4p5.execute-api.us-east-1.amazonaws.com/dev/contact

Exemplo de requisição na API para cadastrar um contato:

curl -X POST
-H "x-api-key: CCJZsdfgzrbxi0shwR8e2Yasdfaz0bOG6A5hlJc7Ui" \
-H "Content-Type: application/json" \
-d '{"name":"Lina Nathan", "phone":"90000-0000"}' \
https://8nncm9w4p5.execute-api.us-east-1.amazonaws.com/dev/contact

Exemplo de requisição na API para excluir um contato:

curl -X DELETE
-H "x-api-key: CCJZsdfgzrbxi0shwR8e2Yasdfaz0bOG6A5hlJc7Ui" \
-H "Content-Type: application/json" \
-d '{"id":"29a64dab-b77a-4b5f-9e82-222950c3b5ff"}' \
https://8nncm9w4p5.execute-api.us-east-1.amazonaws.com/dev/contact

About

API feita em Python para estudo do Serveless Framework e deploy na AWS usando Lambda e API Gateway

Topics

api-gatewayapi-pythonapi-serverlessaws-api-gatewayaws-lambdadynamodbserverless-framework

Resources

Readme
Activity

Stars

0 stars

Watchers

1 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.