API d'accès à la base de données du Plan d'études romand (BD-PER)

Mises à jour
3 juin 2016 : Ajout de l'API /api/v1/objectifs/1 pour faciliter la recomposition tabulaire d'un objectif.
7 juin 2016 : Ajout des API de ressources /api/v1/ressources/1 et /api/v1/ressources/catalogue/1, avec les clés 'ressources' pouvant apparaître dans certains contenus d'objectifs.

À partir du contenu de la liste des domaines, des liens (attributs "href") vous amènent aux différents objets du Plan d'études romand : disciplines, thématiques, objectifs et progresssions.

/api/v1/domaines
[
    {
        "nom": "<nom du domaine>",
        "id": "<identifiant du domaine>",
        "abreviation": "L",
        "disciplines": [
            {
                "id": "<identifiant de la discipline>",
                "nom": "<nom de discipline>",
                "href": "https://bdper.plandetudes.ch/api/v1/disciplines/<id>"
            },
            ...
        ],
        "objectifs": [
            {
                "id": "<identifiant de l'objectif>",
                "code": "<code d'objectif>",
                "href": "https://bdper.plandetudes.ch/api/v1/objectifs/<id>"
            },
            ...
        ],
        "visee": "Visée 1 du domaine\r\nVisée 2 du domaine\r\n..."
    },
    ...
]
    
/api/v1/disciplines/1
{
    "nom": "<nom de la discipline>",
    "id": "<identifiant de la discipline>",
    "domaine": {
        "id": "<identifiant du domaine>",
        "nom": "<nom du domaine>",
        "href": "https://bdper.plandetudes.ch/api/v1/domaines/<id>"
    }
}
    
/api/v1/thematiques/1
{
    "nom": "<nom de la thématique>",
    "id": "<identifiant de la thématique>",
    "domaine": {
        "id": "<identifiant du domaine>",
        "nom": "<nom du domaine>",
        "href": "https://bdper.plandetudes.ch/api/v1/domaines/<id>"
    },
    "disciplines": [
        {
            "id": "<identifiant de la discipline>",
            "nom": "<nom de la discipline>",
            "href": "https://bdper.plandetudes.ch/api/v1/disciplines/<id>"
        },
        ...
    ],
    "objectifs": [
        {
            "id": "<identifiant de l'objectif>",
            "code": "<code d'objectif>",
            "href": "https://bdper.plandetudes.ch/api/v1/objectifs/<id>"
        },
        ...
    ]
}
    
/api/v1/objectifs/1
{
    "nom": "<intitulé de l'objectif>",
    "id": "<identifiant de l'objectif>",
    "code": "<code, ex: MSN 31>",
    "domaine": {
        "id": "<identifiant du domaine>",
        "nom": "<nom du domaine>",
        "href": "https://bdper.plandetudes.ch/api/v1/domaines/<id>"
    },
    "cycle": <1, 2 ou 3>,
    "objectifs_lies": [
        {
            "id": "<identifiant de l'objectif lié>",
            "nom": "<code de l'objectif lié>",
            "href": "https://bdper.plandetudes.ch/api/v1/objectifs/<id>"
        },
        ...
    ],
    "cantons": "<liste de cantons (code 2 lettres) séparés par des virgules, vide si l'objectif concerne tous les cantons>"
    "thematiques": [
        {
            "id": "<identifiant de la thématique>",
            "nom": "<nom de la thématique>",
            "href": "https://bdper.plandetudes.ch/api/v1/thematiques/<id>"
        },
        ...
    ],
    "disciplines": [
        {
            "id": "<identifiant de la discipline>",
            "nom": "<nom de la discipline>",
            "href": "https://bdper.plandetudes.ch/api/v1/disciplines/<id>"
        },
        ...
    ],
    "composantes": [
        "texte de la première composante",
        "texte de la deuxième composante",
        ...
    ],
    "progressions": [
        {
            "sous-cycle": "<intitulé de sous-cycle (ex: 1re - 2e années)>",
            "annees": [
                <liste des degrés HARMOS concernés par ce sous-cycle (ex: 1, 2)>
            ],
            "items": [
                {
                    "lignes": [
                        <liste des numéros de lignes concernés par cet élément de progression (ex: 7, 8, 9)>
                    ],
                    "contenus": [
                         {
                            "id": "<identifiant du contenu>",
                            "href": "https://bdper.plandetudes.ch/api/v1/progressions/<id>",
                            "texte": "contenu de progression 1"
                         },
                        ...
                    ],
                    "ressources": ["<liste facultative de liens vers des ressources>", ...]
                },
                ...
            ]
        },
        ...
    ],
    "titres": [
        {
            "lignes": [
                <numéro de ligne de progression concerné par ce titre>
            ],
            "contenus": [
                "contenu du titre"
            ],
            "annees": [
                <liste des degrés HARMOS concernés par ce titre (ex: 1, 2)>
            ],
            "niveau": <niveau de titre (1: premier niveau, 2: deuxième niveau)>
        },
        ...
    ],
    "liens": [
        {
            "lignes": [
                <numéro de ligne de progression concerné par ce lien>
            ],
            "contenus": [
                "contenu du lien"
            ],
        },
        ...
    ],
    "attentes": [
        {
            "lignes": [
                <liste des numéros de lignes de progression concernés par cette attente fondamentale (ex: 7, 8, 9)>
            ],
            "contenus": [
                {
                    "id": "<identifiant du contenu>",
                    "href": "https://bdper.plandetudes.ch/api/v1/attentes/<id>",
                    "texte": "texte de l'attente fondamentale 1"
                },
                ...
            ]
        },
        ...
    ],
    "indications": [
        {
            "lignes": [
                <liste des numéros de lignes de progression concernés par cette indication pédagogique (ex: 7, 8, 9)>
            ],
            "contenus": [
                {
                    "id": "<identifiant du contenu>",
                    "href": "https://bdper.plandetudes.ch/api/v1/indications/<id>",
                    "texte": "texte de l'indication pédagogique 1"
                },
                ...
            ]
        },
        ...
    ]
}
    
/api/v1/objectifs/1/tableau/
API semblable à la précédente, mais le formatage du contenu dans la clé "tableau" est moins sémantique et ressemble plus au tableau d'objectif tel qu'il est présenté sur portail.ciip.ch.
{
    "nom": "<intitulé de l'objectif>",
    "id": "<identifiant de l'objectif>",
    "code": "<code, ex: MSN 31>",
    "domaine": {
        "id": "<identifiant du domaine>",
        "nom": "<nom du domaine>",
        "href": "https://bdper.plandetudes.ch/api/v1/domaines/<id>"
    },
    "cycle": <1, 2 ou 3>,
    "objectifs_lies": [
        {
            "id": "<identifiant de l'objectif lié>",
            "nom": "<code de l'objectif lié>",
            "href": "https://bdper.plandetudes.ch/api/v1/objectifs/<id>"
        },
        ...
    ],
    "cantons": "<liste de cantons (code 2 lettres) séparés par des virgules, vide si l'objectif concerne tous les cantons>"
    "thematiques": [
        {
            "id": "<identifiant de la thématique>",
            "nom": "<nom de la thématique>",
            "href": "https://bdper.plandetudes.ch/api/v1/thematiques/<id>"
        },
        ...
    ],
    "disciplines": [
        {
            "id": "<identifiant de la discipline>",
            "nom": "<nom de la discipline>",
            "href": "https://bdper.plandetudes.ch/api/v1/disciplines/<id>"
        },
        ...
    ],
    "composantes": [
        "texte de la première composante",
        "texte de la deuxième composante",
        ...
    ],
    "tableau": [
        [
            {
                "colspan": <nombre de colonnes que la cellule remplit>,
                "rowspan": <nombre de lignes que la cellule remplit>,
                "type": "<type de cellule : 'en-tête', 'titre', 'progression', 'attente', 'indication', 'liens'>",
                "contenus": {
                    "id": "<identifiant de contenu>",
                    "texte": "texte du contenu"
                },
                "niveau": <1 ou 2, si type = 'titre'>,
                "ressources": ["<liste facultative de liens vers des ressources>", ...]
            },
            ...
        ],
        ...
    ]
}