NAV

AdA Risques – Spécifications de l'API

L’API de l’AdA Risques a vocation à remplacer l’application e-net historique à travers une interface utilisateur modernisée.

L’API permettra de centraliser les flux de données pour les différentes pages (site vitrine, e-net…) et services consommateurs.

Principes

  1. Pas d'état

    L’API doit être sans état, l’autorisation est assurée par un jeton (JWT) obtenu après authentification sur une extrémité spécifique de l’API.

  2. Pas d’information sensible dans les URL

    Dans les cas où une analyse des flux HTTPS est mise en place, les URL sont généralement journalisée par l’entité.

    Des UUID (version 4) seront donc utilisés pour identifier toutes les ressources exposées.

Alumni

Retourne les enregistrements relatifs aux alumni (anciens et plus généralement membres).

/v2/alumni (alias : /v2/anciens)

Lister les alumni (annuaire)

[
	{
		"id": "100cf457-b78e-4c57-bdf0-62bf16370700",
		"nom": "Doe",
		"prenom": "John",
		"filiere": "MRI",
		"promotion": 2011,
		"avatar": true
	},
	{
		"id": "e7b3ebfb-a6f9-41e9-b141-a78d8e2fbe03",
		"nom": "Nymous",
		"prenom": "Ano",
		"filiere": "STI",
		"promotion": 2014,
		"avatar": false
	}
]

Liste la fiche sommaire de tous les alumni.

Requête HTTP

GET /v2/alumni

La liste peut être filtrée à l’aide d’une combinaison des arguments GET suivants :

En étant authentifié avec des privilèges administrateur, les filtres suivants sont également disponibles :

Créer un alumni

{
	"id": "100cf457-b78e-4c57-bdf0-62bf16370700",
	"nom": "Doe",
	"prenom": "John",
	"filiere": "MRI",
	"promotion": 2011,
	"avatar": false,
	"contacts": [],
	"active": true,
}

Retourne les données de la fiche contact de l’alumni.

Requête HTTP

PUT /v2/alumni

Corps JSON de requête

Voir un alumni (fiche contact)

{
	"id": "100cf457-b78e-4c57-bdf0-62bf16370700",
	"nom": "Doe",
	"prenom": "John",
	"filiere": "MRI",
	"promotion": 2011,
	"avatar": true,
	"contacts": [
		{ "id": "32e050f2-b664-465f-8330-244e49752446", "type": "email", "value": "adresse@mail.com" },
		{ "id": "9c25e5e0-a7c7-424a-b86f-9d99c0321d35", "type": "adresse", "value": "1 rue d'Ici, 99000 Ville, France" },
		{ "id": "d2fe987b-a280-4469-b96f-fb4ffda2e232", "type": "telephone", "value": "06 78 91 23 45" },
		{ "id": "4e13f43f-6033-4c64-ac73-99cd4a59c312", "type": "twitter", "value": "@user" },
		{ "id": "d5a4f70e-d48a-4e23-81df-4a4b094d9999", "type": "linkedin", "value": "in/user" }
	],
	"active": true,
	"adherent": false,
	"adhesions": [
		{ "id": "9c25e5e0-a7c7-424a-b86f-9d99c0321d35", "libelle": "2013-2014" },
		{ "id": "d2fe987b-a280-4469-b96f-fb4ffda2e232", "libelle": "2014-2015" },
		{ "id": "4e13f43f-6033-4c64-ac73-99cd4a59c312", "libelle": "2017-2018" },
		{ "id": "d5a4f70e-d48a-4e23-81df-4a4b094d9999", "libelle": "2019" },
	]
}

Retourne les données de base d’un alumni.

Requête HTTP

GET /v2/alumni/id

Modifier un alumni

{
	"id": "100cf457-b78e-4c57-bdf0-62bf16370700",
	"nom": "Doe",
	"prenom": "John",
	"filiere": "MRI",
	"promotion": 2011,
	"avatar": true,
	"contacts": [
		{ "id": "32e050f2-b664-465f-8330-244e49752446", "type": "email", "value": "adresse@mail.com" },
		{ "id": "9c25e5e0-a7c7-424a-b86f-9d99c0321d35", "type": "adresse", "value": "1 rue d'Ici, 99000 Ville, France" },
		{ "id": "d2fe987b-a280-4469-b96f-fb4ffda2e232", "type": "telephone", "value": "06 78 91 23 45" },
		{ "id": "4e13f43f-6033-4c64-ac73-99cd4a59c312", "type": "twitter", "value": "@user" },
		{ "id": "d5a4f70e-d48a-4e23-81df-4a4b094d9999", "type": "linkedin", "value": "in/user" }
	]
	"active": true
}

Requête HTTP

PUT /v2/alumni/id

PATCH /v2/alumni/id

Corps JSON de requête

Supprimer un alumni

Supprime toutes les données relatives à un alumni.

Requête HTTP

DELETE /v2/alumni/id

Voir les adhésions

[
    { "id": "9c25e5e0-a7c7-424a-b86f-9d99c0321d35", "libelle": "2013-2014" },
    { "id": "d2fe987b-a280-4469-b96f-fb4ffda2e232", "libelle": "2014-2015" },
    { "id": "4e13f43f-6033-4c64-ac73-99cd4a59c312", "libelle": "2017-2018" },
    { "id": "d5a4f70e-d48a-4e23-81df-4a4b094d9999", "libelle": "2019" },
]

Retourne les exercices d’adhésion d’un alumni.

Requête HTTP

GET /v2/alumni/id/adhesions

Enregistrer une adhésion

[
    { "id": "9c25e5e0-a7c7-424a-b86f-9d99c0321d35", "libelle": "2013-2014" },
    { "id": "d2fe987b-a280-4469-b96f-fb4ffda2e232", "libelle": "2014-2015" },
    { "id": "4e13f43f-6033-4c64-ac73-99cd4a59c312", "libelle": "2017-2018" },
    { "id": "d5a4f70e-d48a-4e23-81df-4a4b094d9999", "libelle": "2019" },
]

Requêtes HTTP

POST /v2/alumni/id/adhesions

PUT /v2/alumni/id/adhesions/exercice

Sans l’identifiant de l’exercice d’adhésion, l’adhésion sera enregistrée pour l’exercice courant.

Supprimer une adhésion

Requête HTTP

DELETE /v2/alumni/id/adhesions/exercice

Profil

Retourne les enregistrements relatifs à son propre profil.

/v2/profil

Voir sa fiche contact

{
	"id": "100cf457-b78e-4c57-bdf0-62bf16370700",
    "email": "john.doe@example.com",
	"nom": "Doe",
	"prenom": "John",
	"filiere": "MRI",
	"promotion": 2011,
	"avatar": true,
	"contacts": [
		{ "id": "32e050f2-b664-465f-8330-244e49752446", "type": "email", "value": "adresse@example.com" },
		{ "id": "9c25e5e0-a7c7-424a-b86f-9d99c0321d35", "type": "adresse", "value": "1 rue d'Ici, 99000 Ville, France" },
		{ "id": "d2fe987b-a280-4469-b96f-fb4ffda2e232", "type": "telephone", "value": "06 78 91 23 45" },
		{ "id": "4e13f43f-6033-4c64-ac73-99cd4a59c312", "type": "twitter", "value": "@user" },
		{ "id": "d5a4f70e-d48a-4e23-81df-4a4b094d9999", "type": "linkedin", "value": "in/user" }
	],
    "adherent": false,
	"adhesions": [
		{ "id": "9c25e5e0-a7c7-424a-b86f-9d99c0321d35", "libelle": "2013-2014" },
		{ "id": "d2fe987b-a280-4469-b96f-fb4ffda2e232", "libelle": "2014-2015" },
		{ "id": "4e13f43f-6033-4c64-ac73-99cd4a59c312", "libelle": "2017-2018" },
		{ "id": "d5a4f70e-d48a-4e23-81df-4a4b094d9999", "libelle": "2019" },
	]
}

Retourne sa propre fiche contact

Requête HTTP

GET /v2/profil

Modifier ses identifiants

Requête HTTP

PATCH /v2/profil/credentials

Corps JSON de requête

ou

Ajouter un point de contact

{
	"id": "32e050f2-b664-465f-8330-244e49752446",
	"type": "email",
	"value": "adresse@mail.com"
}

Créer un point de contact

Requête HTTP

POST /v2/profil/contacts

Corps JSON de la requête

Modifier un point de contact

{
	"id": "32e050f2-b664-465f-8330-244e49752446",
	"type": "email",
	"value": "adresse@mail.com"
}

Retourne la fiche contact d’un alumni.

Requête HTTP

PUT /v2/profil/contacts/contact

Corps JSON de la requête

Supprimer un point de contact

Supprime un point de contact.

Requête HTTP

DELETE /v2/profil/contacts/contact

Exercices

Permet de manipuler les exercices (libellé, dates…) et leurs statistiques

/v2/exercices

Lister les exercices

[
    {
        "id": "67d0d598-0a45-4c5c-ae96-c338cf1de708",
        "libelle": "2016-2017",
        "debut": "2016-08-01",
        "fin": "2017-07-31"
    },
    {
        "id": "730ada4e-c1a7-4d88-8738-7ec6be5530b5",
        "libelle": "2017-2018",
        "debut": "2017-08-01",
        "fin": "2018-12-31",
        "actuel": true
    },
    {
        "id": "8d9ad887-b53c-4852-b778-ca5447e1e907",
        "libelle": "2019",
        "debut": "2019-01-01",
        "fin": "2019-12-31"
    }
]

Liste tous les exercices

Requête HTTP

GET /v2/exercices

Créer un exercice

{
    "id": "67d0d598-0a45-4c5c-ae96-c338cf1de708",
    "libelle": "2016-2017",
    "debut": "2016-08-01",
    "fin": "2017-07-31",
    "stats": {
        "adherents": 0,
        "eleves": 0
    }
}

Requête HTTP

POST /v2/exercices

Corps JSON de la requête

Si le corps de la requête est nul, un exercice d’un an est généré à partir de la date de fin la plus avancée.

Voir un exercice

{
    "id": "67d0d598-0a45-4c5c-ae96-c338cf1de708",
    "libelle": "2016-2017",
    "debut": "2016-08-01",
    "fin": "2017-07-31",
    "stats": {
        "adherents": 81,
        "eleves": 13
    }
}

Retourne les détails d’un exercice et ses statistiques

Requête HTTP

GET /v2/exercices/id

Modifier un exercice

{
    "id": "67d0d598-0a45-4c5c-ae96-c338cf1de708",
    "libelle": "2016-2017",
    "debut": "2016-08-01",
    "fin": "2017-07-31",
    "stats": {
        "adherents": 81,
        "eleves": 13
    }
}

Requête HTTP

PUT /v2/exercices/id

Corps JSON de la requête