https://github.com/luizbinario/market_place_api_7
Código de exemplo do livro API on Rails https://github.com/luizbinario/api_on_rails
https://github.com/luizbinario/market_place_api_7
api-test json-api rails rails-api
Last synced: about 1 year ago
JSON representation
Código de exemplo do livro API on Rails https://github.com/luizbinario/api_on_rails
- Host: GitHub
- URL: https://github.com/luizbinario/market_place_api_7
- Owner: luizbinario
- License: mit
- Created: 2025-04-13T14:33:41.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-04-13T14:48:36.000Z (about 1 year ago)
- Last Synced: 2025-04-13T15:36:56.104Z (about 1 year ago)
- Topics: api-test, json-api, rails, rails-api
- Homepage:
- Size: 11.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Market Place API
## 📘 Sobre esta versão
Este repositório é uma reprodução do projeto original [market_place_api_6](https://github.com/madeindjs/market_place_api_6), de autoria de Alexandre Rousseau, agora implementado com a versão **7 do Ruby on Rails**.
O objetivo foi apenas adaptar o projeto para que funcione corretamente com o **Rails 7.x**, servindo como base para estudos e futuras atualizações.
Este projeto está licenciado sob a [Licença MIT](./LICENSE), com os devidos créditos ao autor original.
Este repositório contém o exemplo de aplicação do livro [API on Rails 7](https://github.com/luizbinario/api_on_rails).
A aplicação final será um mercado simples, onde os usuários poderão fazer pedidos, cadastrar produtos e mais. Existem várias opções para criar uma loja online, como [Shopify](http://shopify.com), [Spree](http://spreecommerce.com/) ou [Magento](http://magento.com).
O objetivo desta aplicação não é apenas te ensinar a criar uma API com Rails, mas sim como criar uma API **evolutiva** e **manutenível** com Rails. Ou seja, melhorar seus conhecimentos atuais sobre Rails. Nesta jornada, você aprenderá a:
- Criar respostas em JSON
- Testar seus endpoints com testes unitários e funcionais
- Configurar autenticação com JSON Web Tokens (JWT)
- Otimizar e aplicar cache à API
## Configuração
```bash
git clone https://github.com/luizbinario/market_place_api_7
cd market_place_api_7
bundle install
rake db:create
rake db:migrate
```
## Uso
Criar usuário
```sh
curl -X POST -d 'user[email]=toto@toto.fr' -d 'user[password]=toto1234' localhost:3000/api/v1/users
```
Obter token
```sh
curl -X POST -d 'user[email]=toto@toto.fr' -d 'user[password]=toto1234' localhost:3000/api/v1/tokens
```
Gerenciar produto
```sh
export TKN="eyJhbG...WqaXAcnE" # from /api/v1/tokens
# criar
curl -X POST -H "Authorization: $TKN" -d "product[title]=Bag" -d "product[price]=10" localhost:3000/api/v1/products
# atualizar: publicar e adiconar ao estoque
curl -X PATCH -H "Authorization: $TKN" -d "product[published]=true" -d "product[quantity]=2" localhost:3000/api/v1/products/19
# listar
curl -H "Authorization: $TKN" localhost:3000/api/v1/products
# excluir/deletar
curl -X DELETE -H "Authorization: $TKN" localhost:3000/api/v1/products/19
```
Gerenciar pedido
```sh
export TKN="eyJhbG...WqaXAcnE" # from /api/v1/tokens
# criar
curl -X POST -H "Authorization: $TKN" -d "order[product_ids_and_quantities][][product_id]=20" -d "order[product_ids_and_quantities][][quantity]=1" localhost:3000/api/v1/orders
# listar
curl -H "Authorization: $TKN" localhost:3000/api/v1/orders
# exibir
curl -H "Authorization: $TKN" localhost:3000/api/v1/orders/7
```
## Requisitos
- Ruby 2.7+
- Sqlite