ajout des descriptions d'authentifications et d'appel de l'API

This commit is contained in:
nas 2022-01-31 17:13:00 +01:00
commit ba19b1c02b

View file

@ -6,11 +6,102 @@ Ruby 3.0.1 // Rails 6.1.3.1
Voir [cet article](https://www.digitalocean.com/community/tutorials/how-to-install-ruby-on-rails-with-rbenv-on-ubuntu-18-04) pour installer Ruby avec Rbenv, un gestionnaire de version pour Ruby.
Installer rails : `gem install rails -v 6.1.3.1`
### 0. Pré-requis
PostgreSQL 11 minimum et la gem associée (`pg`).
### 1. Installation
1. `bundle install`
2. `rails db:migrate` (et `rails db:seed` pour peupler la db avec des données factices, si nécessaire)
3. `rails server` pour lancer un serveur local sur le port 3000
3. `rails server` pour lancer un serveur local de développement sur le port 3000
### 2. Endpoints
La commande `rails routes` fournie l'ensemble des endpoints et requêtes HTTP disponibles. L'ensemble des requêtes se font sur la base : localhost:3000/api/v1.
## Appel de l'API
### Créer un compte utilisatrice
`POST /api/v1/users(.:format) api/v1/users#create {:format=>:json}`
```bash
curl --header "Content-Type: application/json" -d "{\"user\" : { \"username\" : \"test\", \"password\" : \"lepwd\", \"email\" : \"iel@cli.su\" }}" -XPOST https://chronobriq-api.URL/api/v1/users
```
### Obtenir un token
`POST /api/v1/tokens(.:format) api/v1/tokens#create {:format=>:json}`
```bash
curl --header "Content-Type: application/json" -d "{\"user\":{\"email\":\"iel@cli.su\", \"password\":\"lepwd\"}}" -XPOST https://chronobriq-api.URL/api/v1/tokens
```
Un obtient une réponse du type :
```
{"token":"Kgt2p1ITAjfbLK4xtS8YPi44gIMWrwtagOGwK0ROEOUgrn6Jj34sqprnX2d7t7RI","email":"jules@cli.coop","username":"test"}
```
#### Usage
Grâce au to.ken obtenu précédemment, nous pouvons récupérer des informations en le fournissant dans l'entête
##### GET
- Users
```
curl --header "Content-Type: application/json" -H "Authorization : Kgt2p1ITAjfbLK4xtS8YPi44gIMWrwtagOGwK0ROEOUgrn6Jj34sqprnX2d7t7RI" -XGET https://chronobriq-api.canaille.netlib.re/api/v1/users
```
- Teams
```
curl --header "Content-Type: application/json" -H "Authorization: Kgt2p1ITAjfbLK4xtS8YPi44gIMWrwtagOGwK0ROEOUgrn6Jj34sqprnX2d7t7RI" -XGET https://chronobriq-api.canaille.netlib.re/api/v1/teams
```
## Notes
Patch et delete permettent de modifier ou supprimer une donnée qui a été crée depuis cette utilisatrice, après avoir spécifié l'id du jeu de données dans l'URL
### Routes
| Prefix | Verb | URI Pattern | Controller#Action |
| -------------------- | ------ | ---------------------------------------------------------- | ------------------------------------------- |
| api_v1_users| GET | /api/v1/users(.:format) | api/v1/users#index {:format=>:json} |
| | POST | /api/v1/users(.:format) | api/v1/users#create {:format=>:json} |
| api_v1_user| GET | /api/v1/users/:id(.:format) | api/v1/users#show {:format=>:json} |
| | PATCH | /api/v1/users/:id(.:format) | api/v1/users#update {:format=>:json} |
| | PUT | /api/v1/users/:id(.:format) | api/v1/users#update {:format=>:json} |
| | DELETE | /api/v1/users/:id(.:format) | api/v1/users#destroy {:format=>:json} |
| api_v1_tokens| POST | /api/v1/tokens(.:format) | api/v1/tokens#create {:format=>:json} |
| api_v1_teams| GET | /api/v1/teams(.:format) | api/v1/teams#index {:format=>:json} |
| | POST | /api/v1/teams(.:format) | api/v1/teams#create {:format=>:json} |
| api_v1_team| GET | /api/v1/teams/:id(.:format) | api/v1/teams#show {:format=>:json} |
| | PATCH | /api/v1/teams/:id(.:format) | api/v1/teams#update {:format=>:json} |
| | PUT | /api/v1/teams/:id(.:format) | api/v1/teams#update {:format=>:json} |
| | DELETE | /api/v1/teams/:id(.:format) | api/v1/teams#destroy {:format=>:json} |
| api_v1_memberships| GET | /api/v1/memberships(.:format) | api/v1/memberships#index {:format=>:json} |
| | POST | /api/v1/memberships(.:format) | api/v1/memberships#create {:format=>:json} |
| api_v1_membership| GET | /api/v1/memberships/:id(.:format) | api/v1/memberships#show {:format=>:json} |
| | PATCH | /api/v1/memberships/:id(.:format) | api/v1/memberships#update {:format=>:json} |
| | PUT | /api/v1/memberships/:id(.:format) | api/v1/memberships#update {:format=>:json} |
| | DELETE | /api/v1/memberships/:id(.:format) | api/v1/memberships#destroy {:format=>:json} |
| api_v1_activity_tasks| GET | /api/v1/activities/:activity_id/tasks(.:format) | api/v1/tasks#index {:format=>:json} |
| | POST | /api/v1/activities/:activity_id/tasks(.:format) | api/v1/tasks#create {:format=>:json} |
| api_v1_activity_task| GET | /api/v1/activities/:activity_id/tasks/:id(.:format) | api/v1/tasks#show {:format=>:json} |
| | PATCH | /api/v1/activities/:activity_id/tasks/:id(.:format) | api/v1/tasks#update {:format=>:json} |
| | PUT | /api/v1/activities/:activity_id/tasks/:id(.:format) | api/v1/tasks#update {:format=>:json} |
| | DELETE | /api/v1/activities/:activity_id/tasks/:id(.:format) | api/v1/tasks#destroy {:format=>:json} |
| api_v1_activities| GET | /api/v1/activities(.:format) | api/v1/activities#index {:format=>:json} |
| | POST | /api/v1/activities(.:format) | api/v1/activities#create {:format=>:json} |
| api_v1_activity| GET | /api/v1/activities/:id(.:format) | api/v1/activities#show {:format=>:json} |
| | PATCH | /api/v1/activities/:id(.:format) | api/v1/activities#update {:format=>:json} |
| | PUT | /api/v1/activities/:id(.:format) | api/v1/activities#update {:format=>:json} |
| | DELETE | /api/v1/activities/:id(.:format) | api/v1/activities#destroy {:format=>:json} |
| api_v1_tasks| GET | /api/v1/tasks(.:format) | api/v1/tasks#index {:format=>:json} |
| | POST | /api/v1/tasks(.:format) | api/v1/tasks#create {:format=>:json} |
| api_v1_task| GET | /api/v1/tasks/:id(.:format) | api/v1/tasks#show {:format=>:json} |
| | PATCH | /api/v1/tasks/:id(.:format) | api/v1/tasks#update {:format=>:json} |
| | PUT | /api/v1/tasks/:id(.:format) | api/v1/tasks#update {:format=>:json} |
| | DELETE | /api/v1/tasks/:id(.:format) | api/v1/tasks#destroy {:format=>:json} |