From 0b4684bfe225c57ad0d855348f2b3177329d8a8d Mon Sep 17 00:00:00 2001 From: Caillou <6117264+JeSuisUnCaillou@users.noreply.github.com> Date: Mon, 14 Oct 2024 14:31:53 +0200 Subject: [PATCH 1/3] allow CORS on api requests --- Gemfile | 2 ++ Gemfile.lock | 3 +++ config/initializers/cors.rb | 6 ++++++ 3 files changed, 11 insertions(+) create mode 100644 config/initializers/cors.rb diff --git a/Gemfile b/Gemfile index eb1138e0..00c15c07 100644 --- a/Gemfile +++ b/Gemfile @@ -93,3 +93,5 @@ group :test do end gem "good_job", "~> 3.99" + +gem "rack-cors" diff --git a/Gemfile.lock b/Gemfile.lock index 78a698e5..17c49470 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -325,6 +325,8 @@ GEM raabro (1.4.0) racc (1.8.1) rack (3.1.7) + rack-cors (2.0.2) + rack (>= 2.0.0) rack-oauth2 (2.2.1) activesupport attr_required @@ -552,6 +554,7 @@ DEPENDENCIES pg (~> 1.5) prawn puma (>= 5.0) + rack-cors rails (~> 7.2.1) rails-i18n (~> 7.0.0) rqrcode (~> 2.0) diff --git a/config/initializers/cors.rb b/config/initializers/cors.rb new file mode 100644 index 00000000..5a132cec --- /dev/null +++ b/config/initializers/cors.rb @@ -0,0 +1,6 @@ +Rails.application.config.middleware.insert_before 0, Rack::Cors do + allow do + origins "*" + resource "/api/*", headers: :any, methods: [:get, :post, :put, :patch, :delete, :options, :head] + end +end From a58b880d1d1a82831b3905d9cf1851dbb8616406 Mon Sep 17 00:00:00 2001 From: Caillou <6117264+JeSuisUnCaillou@users.noreply.github.com> Date: Mon, 14 Oct 2024 14:38:14 +0200 Subject: [PATCH 2/3] make a swagger to describe the API --- docs/swagger.yaml | 50 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 docs/swagger.yaml diff --git a/docs/swagger.yaml b/docs/swagger.yaml new file mode 100644 index 00000000..393f43c7 --- /dev/null +++ b/docs/swagger.yaml @@ -0,0 +1,50 @@ +openapi: 3.0.3 +info: + title: Swagger quotient-familial.numerique.gouv.fr - OpenAPI 3.0 + description: |- + # Le service + + Les cantines, transports ou aides spécifiques proposés par les collectivités sont souvent tarifés ou alloués selon la situation familiale et les ressources des particuliers. + + Le service [quotient-familial.numerique.gouv.fr](https://quotient-familial.numerique.gouv.fr) vous permet de transmettre de façon sécurisée vos données d’identité permettant à votre collectivité de récupérer instantanément votre quotient familial CAF ou MSA auprès de l’administration détenant cette information. + + # L'API + Cette API sert à savoir quelles sont les communes disponibles sur [quotient-familial.numerique.gouv.fr](https://quotient-familial.numerique.gouv.fr). + + Aucune clef d'API requise. + + version: 1.0.0 +servers: + - url: https://quotient-familial.numerique.gouv.fr/api +paths: + /collectivites: + get: + tags: + - collectivités + summary: Liste des collectivités + description: Liste des collectivités disponibles sur quotient-familial.gouv.fr + operationId: getCollectivities + responses: + '200': + description: Successful operation + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Collectivity' +components: + schemas: + Collectivity: + type: object + properties: + siret: + type: string + example: "1021290146600012" + name: + type: string + example: "COMMUNE DE MELGVEN" + code_cog: + type: string + example: "29146" + \ No newline at end of file From db951b1f10aa21f1efcf1f0dc83ec3e5388b17bd Mon Sep 17 00:00:00 2001 From: Caillou <6117264+JeSuisUnCaillou@users.noreply.github.com> Date: Mon, 14 Oct 2024 14:42:04 +0200 Subject: [PATCH 3/3] mention the swagger in the readme. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index a2d063c6..0bf23a6f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # README +Pour l'API, consulter le [swagger](/docs/swagger.yaml) + ## Install project ### Database setup