{"id":21913020,"url":"https://github.com/gustavosachetto/api-carros","last_synced_at":"2026-05-02T23:43:38.174Z","repository":{"id":213969933,"uuid":"735378549","full_name":"GustavoSachetto/Api-carros","owner":"GustavoSachetto","description":"Desenvolvendo uma API-REST com tema veículos, através da linguagem PHP.","archived":false,"fork":false,"pushed_at":"2025-01-13T23:31:47.000Z","size":219,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-27T08:44:19.849Z","etag":null,"topics":["api-restful","api-server","mysql","oop","php8"],"latest_commit_sha":null,"homepage":"https://www.postman.com/api-carros-gs/api-carros-developer-workspace/overview","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GustavoSachetto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-12-24T17:41:55.000Z","updated_at":"2025-01-13T23:31:51.000Z","dependencies_parsed_at":"2024-01-15T23:59:34.490Z","dependency_job_id":"3f8c727d-04c3-4ffc-bb6a-dc6387e9a643","html_url":"https://github.com/GustavoSachetto/Api-carros","commit_stats":null,"previous_names":["gustavosachetto/api-carros"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GustavoSachetto%2FApi-carros","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GustavoSachetto%2FApi-carros/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GustavoSachetto%2FApi-carros/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GustavoSachetto%2FApi-carros/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GustavoSachetto","download_url":"https://codeload.github.com/GustavoSachetto/Api-carros/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244931585,"owners_count":20534009,"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-restful","api-server","mysql","oop","php8"],"created_at":"2024-11-28T18:14:14.529Z","updated_at":"2026-05-02T23:43:33.154Z","avatar_url":"https://github.com/GustavoSachetto.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Api-carros\nMaravilhado com a ideia de consumir APIs busquei criar a minha própria, trazendo como tema __veículos__! Utilizei nela uma arquitetura __MVC__ usando como base a linguagem __PHP.__\n\n#php #poo #api\n\n* __Link de acesso:__ https://www.postman.com/api-carros-gs/api-carros-developer-workspace/overview\n\n## Desenvolvendo\nPara construir uma __API-REST-FULL__ tive que estudar muitos conceitos que me trouxeram grandes experiências! Trabalhei com: \n\n* Programação Orientada a Objeto\n* Arquitetura Rest.\n* Configuração de rotas.\n* Requisição do cliente.\n* Resposta do servidor.\n* Codigo status HTTP.\n* Basic Authentication.\n* Token Authentication.\n* Implementação de cache.\n* Banco de dados.\n* Postman (Ferramenta de teste).\n* Formatação de arquivos JSON.\n\n## Comandos iniciais\nPrincipais comandos para iniciar o projeto:\n```\ncomposer install\nphp cli --db set # Carrega as tabelas\nphp cli --db load # Carraga as informações para as tabelas\n```\n\n## Documentação\n* __Framework:__ https://github.com/GustavoSachetto/Php-puro/tree/v1\n* __Postman:__ https://documenter.getpostman.com/view/31981241/2sA3kaCK5V\n\n## Banco de dados\nO banco de dados dessa api conta com 6 tabelas, elas são: \n* `user` Armazena todos os usuários de acesso privilegiado da api.\n* `brand` Armazena todas as marcas de veículos presente na api.\n* `model` Armazena todos os modelos de veículos da api, trazendo dados da tabela: `brand`.\n* `fuel` Armazena todos os combustíveis presente na api.\n* `transmission` Armazena todas as transmissões presente na api.\n* `vehicle` Armazena todos os veículos da api, trazendo dados das tabelas: `model`, `fuel` e `transmission`.\n\nTodas as tabelas e alterações no banco estão acima no projeto, na pasta \"database\".\n\n## Principais Rotas:\n__Rotas do veículo (carro):__\n\n| API                | CRUD           | AUTH               | DESCRIÇÃO                                                                   |\n| :----------------- | -------------- | ------------------ | :-------------------------------------------------------------------------- |\n| GET /              | __READ__       | __No Auth__        | Obtenha as informações sobre a api                                          |\n| GET /cars          | __READ__       | __No Auth__        | Obtenha as ultimas cinco postagens da `vehicle` tabela                      |\n| GET /cars?page=2   | __READ__       | __No Auth__        | Obtenha até 25 postagens por página da `vehicle` tabela                     |\n| GET /cars/{id}     | __READ__       | __No Auth__        | Obtenha uma postagem pela busca por id da `vehicle` tabela                  |\n| POST /cars         | __CREATE__     | __JWT Auth__       | Crie uma nova postagem da `vehicle` tabela                                  |\n| PUT /cars          | __UPDATE__     | __JWT Auth__       | Atualize uma postagem da `vehicle` tabela                                   |\n| DELETE /cars       | __DELETE__     | __JWT Auth__       | Delete uma postagem da `vehicle` tabela                                     |\n\n\n__Rotas dos usuários:__\n\n| API                    | CRUD           | AUTH               | DESCRIÇÃO                                                             |\n| :--------------------- | -------------- | ------------------ | :-------------------------------------------------------------------- |\n| GET /users          \t | __READ__       | __Basic Auth__     | Obtenha todas postagens da `user` tabela                     \t       |\n| GET /users/{id}     \t | __READ__       | __Basic Auth__     | Obtenha uma postagem da `user` tabela          \t\t\t           |\n| POST /users            | __CREATE__     | __Basic Auth__     | Crie uma nova postagem da `user` tabela                               |\n| PUT /users/{id}        | __UPDATE__     | __Basic Auth__     | Atualize uma postagem da `user` tabela                                |\n| DELETE /users/{id}     | __DELETE__     | __Basic Auth__     | Delete uma postagem da `user` tabela                                  |\n\n__Rotas das marcas do veículo:__\n\n| API                           | CRUD           | AUTH               | DESCRIÇÃO                                                                      |\n| :---------------------------- | -------------- | ------------------ | :----------------------------------------------------------------------------- |\n| GET /brands          \t        | __READ__       | __No Auth__        | Obtenha todas postagens da `brand` tabela                     \t               |\n| GET /brands/{id}              | __READ__       | __No Auth__        | Obtenha todas postagens pela busca por id na `brand` tabela                    |\n| POST /brands                  | __CREATE__     | __JWT Auth__       | Crie uma nova postagem da `brand` tabela                                       |\n| PUT /brands/{id}              | __UPDATE__     | __JWT Auth__       | Atualize uma postagem da `brand` tabela                                        | \n| DELETE /brands/{id}           | __DELETE__     | __JWT Auth__       | Delete uma postagem da `brand` tabela                                          | \n\n__Para acessar todas as rotas da api:__ https://www.postman.com/api-carros-gs/workspace/api-carros-developer-workspace\n\n## Exemplo de retorno\nEste é um retorno padrão da \"Api-carros\". Todos os veículos consultados deveram ter esse formato base.\n* __Tipo de arquivo:__ JSON\n\n```\n{\n    \"id\": 4,\n    \"price\": 77900,\n    \"brand_id\": 3,\n    \"brand_name\": \"Chevrolet\",\n    \"model_id\": 3,\n    \"model_name\": \"Onix Plus\",\n    \"version\": \"1.4 Ltz 5p\",\n    \"images\": [\n        \"https://http2.mlstatic.com/D_NQ_NP_635613-MLB72695882250_112023-O.webp\",\n        \"https://http2.mlstatic.com/D_NQ_NP_775847-MLB72769680979_112023-O.webp\",\n        null\n    ],\n    \"year\": {\n        \"production\": 2019,\n        \"release\": 2019\n    },\n    \"fuel_name\": \"Gasolina e Álcool\",\n    \"doors\": 4,\n    \"transmission_name\": \"Manual\",\n    \"motor\": 1.4,\n    \"bodywork\": \"Hatch\",\n    \"comfort\": {\n        \"automatic_pilot\": false,\n        \"air_conditioner\": true,\n        \"automatic_glass\": true\n    },\n    \"entertainment\": {\n        \"am_fm\": false,\n        \"auxiliary_input\": true,\n        \"bluetooth\": true,\n        \"cd_player\": true,\n        \"dvd_player\": true,\n        \"mp3_reader\": true,\n        \"usb_port\": false\n    },\n    \"deleted\": false\n}\n```\n\n********************************\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgustavosachetto%2Fapi-carros","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgustavosachetto%2Fapi-carros","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgustavosachetto%2Fapi-carros/lists"}