API de comptabilité horaire.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nas b46912ab42 Merge branch 'fix_membership' of cli/Chronobriq-API into master hace 2 años
app added test and method create hace 2 años
bin Init commit hace 3 años
config started to rework memberships controller hace 2 años
db member: membership dependent destoy hace 3 años
lib Setup tokens controller hace 3 años
log Init commit hace 3 años
public Init commit hace 3 años
storage Init commit hace 3 años
test added tests and method update and destroy hace 2 años
tmp Init commit hace 3 años
vendor Init commit hace 3 años
.dockerignore started to rework memberships controller hace 2 años
.gitattributes updated version hace 2 años
.gitignore gitignore: ajout de .env hace 3 años
.ruby-version updated version hace 2 años
Dockerfile started to rework memberships controller hace 2 años
Gemfile updated version hace 2 años
Gemfile.lock updated version hace 2 años
README.md updated README.md with new routes hace 2 años
Rakefile Init commit hace 3 años
config.ru Init commit hace 3 años
docker-compose.yml started to rework memberships controller hace 2 años
erd.pdf member: membership dependent destoy hace 3 años

README.md

Chronobriq

Rails API

Ruby 3.0.1 // Rails 6.1.3.1

Voir cet article 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 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 : domaine.tld/api/v1.

Tests

Les scripts de test sont situés dans le répertoire test, y compris les test distants (test/remote).

Appel de l’API

Créer un compte utilisatrice

POST /api/v1/users(.:format) api/v1/users#create {:format=>:json}

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}

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_team_memberships GET /api/v1/teams/:team_id/memberships(.:format) api/v1/memberships#index {:format=>:json}
POST /api/v1/teams/:team_id/memberships(.:format) api/v1/memberships#create {:format=>:json}
api_v1_team_membership GET /api/v1/teams/:team_id/memberships/:id(.:format) api/v1/memberships#show {:format=>:json}
PATCH /api/v1/teams/:team_id/memberships/:id(.:format) api/v1/memberships#update {:format=>:json}
PUT /api/v1/teams/:team_id/memberships/:id(.:format) api/v1/memberships#update {:format=>:json}
DELETE /api/v1/teams/:team_id/memberships/:id(.:format) api/v1/memberships#destroy {: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}
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}