{"id":21081949,"url":"https://github.com/tayron/serverless-api-python","last_synced_at":"2025-03-14T04:40:48.864Z","repository":{"id":95258302,"uuid":"315740528","full_name":"tayron/serverless-api-python","owner":"tayron","description":"API feita em Python para estudo do Serveless Framework e deploy na AWS usando Lambda e API Gateway","archived":false,"fork":false,"pushed_at":"2020-11-25T21:36:11.000Z","size":1650,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-20T23:34:13.158Z","etag":null,"topics":["api-gateway","api-python","api-serverless","aws-api-gateway","aws-lambda","dynamodb","serverless-framework"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tayron.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-24T20:06:07.000Z","updated_at":"2020-11-25T21:36:13.000Z","dependencies_parsed_at":"2023-03-13T16:52:36.084Z","dependency_job_id":null,"html_url":"https://github.com/tayron/serverless-api-python","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tayron%2Fserverless-api-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tayron%2Fserverless-api-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tayron%2Fserverless-api-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tayron%2Fserverless-api-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tayron","download_url":"https://codeload.github.com/tayron/serverless-api-python/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243526862,"owners_count":20305112,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-gateway","api-python","api-serverless","aws-api-gateway","aws-lambda","dynamodb","serverless-framework"],"created_at":"2024-11-19T20:11:37.889Z","updated_at":"2025-03-14T04:40:48.835Z","avatar_url":"https://github.com/tayron.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# API Serverless\n\n## Descrição\nExemplo de uma API Serverless usando Serverless Framework e deploy no AWS utilizando os serviços:\n- AWS Lambda\n- API Gateway\n- DynamoDB\n\n## Tutorial seguido\n- https://solvimm.com/blog/como-construir-sua-primeira-api-na-nuvem-com-o-serverless-framework\n- https://solvimm.com/blog/como-adicionar-uma-chave-de-autorizacao-de-api-com-o-serverless-framework\n- https://solvimm.com/blog/como-usar-variaveis-com-o-serverless-framework\n- https://solvimm.com/blog/integracao-de-api-com-dynamodb-utilizando-o-serverless-framework\n\n## Comandos\n\n#### Comando para gravar credencial localmente da AWS:\n```\nserverless config credentials \\\n--provider aws \\\n--key apiKeyAqui \\\n--secret chaveSecretaAqui \\\n--profile my-aws-profile\n```\n\n#### Comando para realizar deploy:\n\n##### Dependências\n- ```npm install serverless-iam-roles-per-function```\n\nPara fazer deploy e manter o stage padrão: **dev**\n```serverless deploy --aws-profile my-aws-profile```\n\nPara fazer deploy e alterar o stage padrão: **dev** para **prod**\n```serverless deploy --aws-profile my-aws-profile --stage prod```\n\nO resultado do comando será algo parecido com \n```\n....\nServerless: Stack update finished...\nService Information\nservice: api-python-hello-world\nstage: dev\nregion: us-east-1\nstack: api-python-hello-world-dev\nresources: 16\napi keys:\n  myKey: CCJZsdfgzrbxi0shwR8e2Yasdfaz0bOG6A5hlJc7Ui\nendpoints:\n  GET - https://aaa.execute-api.aa-aa-1.amazonaws.com/dev/api/python/hello-world\nfunctions:\n  hello: api-python-hello-world-dev-hello\nlayers:\n  None\n```\n\nChave da API se encontra na reposta\n```\napi keys:\n  myKey: CCJZsdfgzrbxi0shwR8e2Yasdfaz0bOG6A5hlJc7Ui\n```\n\nChave da API deve ser passado no header da requisição:\n\n```x-api-key: CCJZsdfgzrbxi0shwR8e2Yasdfaz0bOG6A5hlJc7Ui```\n\n#### Comando para remover api em produção:\n\n```serverless remove --aws-profile my-aws-profile --stage dev```\n\n## Requisição\n\n### Exemplo de requisição na API para exibir o Helo World:\n\n```\ncurl --request GET \\\n  --url https://7cq8ind2me.execute-api.us-east-1.amazonaws.com/dev/api/python/hello-world \\\n  --header 'x-api-key: CCJZsdfgzrbxi0shwR8e2Yasdfaz0bOG6A5hlJc7Ui'\n```\n\n### Exemplo de requisição na API para listar todos os contatos:\n```\ncurl -X GET\n-H \"x-api-key: CCJZsdfgzrbxi0shwR8e2Yasdfaz0bOG6A5hlJc7Ui\" \\\nhttps://8nncm9w4p5.execute-api.us-east-1.amazonaws.com/dev/contact\n```\n\n### Exemplo de requisição na API para cadastrar um contato:\n```\ncurl -X POST\n-H \"x-api-key: CCJZsdfgzrbxi0shwR8e2Yasdfaz0bOG6A5hlJc7Ui\" \\\n-H \"Content-Type: application/json\" \\\n-d '{\"name\":\"Lina Nathan\", \"phone\":\"90000-0000\"}' \\\nhttps://8nncm9w4p5.execute-api.us-east-1.amazonaws.com/dev/contact\n```\n\n### Exemplo de requisição na API para excluir um contato:\n```\ncurl -X DELETE\n-H \"x-api-key: CCJZsdfgzrbxi0shwR8e2Yasdfaz0bOG6A5hlJc7Ui\" \\\n-H \"Content-Type: application/json\" \\\n-d '{\"id\":\"29a64dab-b77a-4b5f-9e82-222950c3b5ff\"}' \\\nhttps://8nncm9w4p5.execute-api.us-east-1.amazonaws.com/dev/contact\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftayron%2Fserverless-api-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftayron%2Fserverless-api-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftayron%2Fserverless-api-python/lists"}