API de comptabilité horaire.
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
nas b46912ab42 Merge branch 'fix_membership' of cli/Chronobriq-API into master 2 anos atrás
app added test and method create 2 anos atrás
bin Init commit 3 anos atrás
config started to rework memberships controller 2 anos atrás
db member: membership dependent destoy 3 anos atrás
lib Setup tokens controller 3 anos atrás
log Init commit 3 anos atrás
public Init commit 3 anos atrás
storage Init commit 3 anos atrás
test added tests and method update and destroy 2 anos atrás
tmp Init commit 3 anos atrás
vendor Init commit 3 anos atrás
.dockerignore started to rework memberships controller 2 anos atrás
.gitattributes updated version 2 anos atrás
.gitignore gitignore: ajout de .env 3 anos atrás
.ruby-version updated version 2 anos atrás
Dockerfile started to rework memberships controller 2 anos atrás
Gemfile updated version 2 anos atrás
Gemfile.lock updated version 2 anos atrás
README.md updated README.md with new routes 2 anos atrás
Rakefile Init commit 3 anos atrás
config.ru Init commit 3 anos atrás
docker-compose.yml started to rework memberships controller 2 anos atrás
erd.pdf member: membership dependent destoy 3 anos atrás

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}