Back to top

API

Documentation de l’API d’édition des protocoles d’annotation.

Tous les endpoint de cet API demande une authentification par token. Toutes les requêtes doievnt donc comporter l’en-tête suivant :

Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b

Resource Group

Collection de protocoles

Voir la liste des protocoles
GET/protocol/{?page,page_size}

Liste les protocoles pour une application. L’application est déterminée par le token passé comme authentification.

Example URI

GET /protocol/?page=3&page_size=15
URI Parameters
HideShow
page
number (optional) Default: 1 Example: 3

Get the page.

page_size
number (optional) Default: 10 Example: 15

Set number of protocol per page

Request
HideShow
Headers
Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "count": 15,
  "next": "http://scatedit.episteme.fr/api/protocol/?page=2",
  "prev": "null",
  "results": [
    {
      "id": "a4977c1f-4752-4aff-b724-eec4033af25c",
      "owner": "group1",
      "revision_number": 5,
      "last_description": "Cras rutrum lacinia pretium. Suspendisse justo est, tincidunt sed tellus a, sodales suscipit risus. Curabitur odio tortor, tincidunt sed est nec, ullamcorper sodales velit."
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "count": {
      "type": "number"
    },
    "next": {
      "type": "string"
    },
    "prev": {
      "type": "string"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "owner": {
            "type": "string"
          },
          "revision_number": {
            "type": "number"
          },
          "last_description": {
            "type": "string"
          }
        }
      }
    }
  }
}

Créer un nouveau protocole
POST/protocol/

Crée un nouveau protocole d’annotation dont la liste des méta-catégorie est la liste des méta-catégories par défaut pour l’application.

Le numéro de révision retourné sera toujours 1.

Example URI

POST /protocol/
Request
HideShow
Headers
Content-Type: application/json
Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b
Body
{
  "owner": "group1",
  "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin massa nibh, hendrerit quis justo vitae, luctus tempor dolor. Nam quis fringilla diam."
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "owner": {
      "type": "string"
    },
    "description": {
      "type": "string"
    }
  }
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "id": "e5712a76-857a-4769-b27e-a3ac3fb38b4d",
  "revision": 2,
  "base": "ef14bcce-52ac-44ba-a7d1-f1441bab94de",
  "name": "référence",
  "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin massa nibh, hendrerit quis justo vitae, luctus tempor dolor. Nam quis fringilla diam.",
  "color": "#2cbfff",
  "has_comment": false,
  "metacategories": [
    {
      "id": "e5712a76-857a-4769-b27e-a3ac3fb38b4d",
      "revision": 2,
      "base": "ef14bcce-52ac-44ba-a7d1-f1441bab94de",
      "name": "référence",
      "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin massa nibh, hendrerit quis justo vitae, luctus tempor dolor. Nam quis fringilla diam.",
      "color": "#2cbfff",
      "has_comment": false
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "revision": {
      "type": "number"
    },
    "base": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "color": {
      "type": "string"
    },
    "has_comment": {
      "type": "boolean"
    },
    "metacategories": {
      "type": "array"
    }
  }
}

Révisions d'un protocole.

Voir la liste des revision pour un protocole
GET/protocol/{id}/{?page,page_size}

Liste les revisions d’un protocole pour une application.

Example URI

GET /protocol/a4977c1f-4752-4aff-b724-eec4033af25c/?page=3&page_size=15
URI Parameters
HideShow
id
string (required) Example: a4977c1f-4752-4aff-b724-eec4033af25c

Identifiant d’un protocole

page
number (optional) Default: 1 Example: 3

Get the page.

page_size
number (optional) Default: 10 Example: 15

Set number of protocol per page

Request
HideShow
Headers
Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "count": "15",
  "next": "http://scatedit.episteme.fr/api/protocol/a4977c1f",
  "prev": "null",
  "results": [
    {
      "id": "a4977c1f-4752-4aff-b724-eec4033af25c",
      "owner": "group1",
      "revision": "1",
      "description": "Cras rutrum lacinia pretium. Suspendisse justo est, tincidunt sed tellus a, sodales suscipit risus. Curabitur odio tortor, tincidunt sed est nec, ullamcorper sodales velit."
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "count": {
      "type": "string"
    },
    "next": {
      "type": "string",
      "description": "4752-4aff-b724-eec4033af25c?page=2"
    },
    "prev": {
      "type": "string"
    },
    "results": {
      "type": "array"
    }
  }
}
Response  403
HideShow

Retournée si l’utilisateur (application) n’est pas le propriétaire du protocole.

Body
{
  "error": "Application is not protocol owner."
}
Schema
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-04/schema#"
}
Response  404
HideShow

Retournée si l’identifiant ne coreespond à aucun protocole.

Body
{
  "error": "Object not found."
}
Schema
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-04/schema#"
}

Créer une nouvelle révision du protocole
POST/protocol/{id}/

Permet de créer une nouvelle révision du protocole.

L’attribut revision doit être le dernier numéro de révision du protocole.

La liste des métacatégorie doit être complête et remplacera la liste existante sur la révision courante. Tous les attributs d’une metacategories doivent être fournis à part id, revision et base. Les rêgles pour ces derniers sont les suivantes

  • Si id est présent: l’attribut revision doit être fourni et correspondre à la dernière valeur pour cette méta-catégorie. Si un des attributs a été modifé, une nouvelle révision sera créee.

  • Si id n’est pas présent: 2 possibilités:

    • base est présent: Dans ce cas une nouvelle famille de méta-catégorie est créé prenant pour base la métacatégorie dont l’ID est passé comme base. Si les attributs ne sont pas les mêmes, une nouvelle révision sera automatiquement créée, sinon, les attributs de la méta-catégorie de base sont copié dans une révision de base.
    • base n’est pas présent: une nouvelle métacatégorie est créée ainsi qu’une nouvelle famille de méta-catégorie basée dessus.

Dans tous les cas, le retours est une sérialisation complête du protocole d’annotation, avec les nouveaux id et revision pour les méta-catégories créées ou mis à jour.

Example URI

POST /protocol/a4977c1f-4752-4aff-b724-eec4033af25c/
URI Parameters
HideShow
id
string (required) Example: a4977c1f-4752-4aff-b724-eec4033af25c

Identifiant d’un protocole

Request
HideShow
Headers
Content-Type: application/json
Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b
Body
{
  "id": "a4977c1f-4752-4aff-b724-eec4033af25c",
  "owner": "group1",
  "revision": "1",
  "description": "Cras rutrum lacinia pretium. Suspendisse justo est, tincidunt sed tellus a, sodales suscipit risus. Curabitur odio tortor, tincidunt sed est nec, ullamcorper sodales velit.",
  "metacategories": [
    {
      "id": "e5712a76-857a-4769-b27e-a3ac3fb38b4d",
      "revision": 2,
      "base": "ef14bcce-52ac-44ba-a7d1-f1441bab94de",
      "name": "référence",
      "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin massa nibh, hendrerit quis justo vitae, luctus tempor dolor. Nam quis fringilla diam.",
      "color": "#2cbfff",
      "has_comment": false
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "owner": {
      "type": "string"
    },
    "revision": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "metacategories": {
      "type": "array"
    }
  }
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "id": "e5712a76-857a-4769-b27e-a3ac3fb38b4d",
  "revision": 2,
  "base": "ef14bcce-52ac-44ba-a7d1-f1441bab94de",
  "name": "référence",
  "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin massa nibh, hendrerit quis justo vitae, luctus tempor dolor. Nam quis fringilla diam.",
  "color": "#2cbfff",
  "has_comment": false,
  "metacategories": [
    {
      "id": "e5712a76-857a-4769-b27e-a3ac3fb38b4d",
      "revision": 2,
      "base": "ef14bcce-52ac-44ba-a7d1-f1441bab94de",
      "name": "référence",
      "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin massa nibh, hendrerit quis justo vitae, luctus tempor dolor. Nam quis fringilla diam.",
      "color": "#2cbfff",
      "has_comment": false
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "revision": {
      "type": "number"
    },
    "base": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "color": {
      "type": "string"
    },
    "has_comment": {
      "type": "boolean"
    },
    "metacategories": {
      "type": "array"
    }
  }
}
Response  403
HideShow

Retournée si l’utilisateur (application) n’est pas le propriétaire du protocole.

Body
{
  "error": "Application is not protocol owner."
}
Schema
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-04/schema#"
}
Response  409
HideShow

Retournée si la valeur de l’attribut revision n’est pas le numéro de version courant du protocole, ou bien d’une des méta-catégories.

Body
{
  "error": "Bad revision number."
}
Schema
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-04/schema#"
}

Détail d'un protocole

Voir une revision d'un protocole
GET/protocol/{id}/{revision}/

Permet d’obtenir la représentation complète d’une révision de protocole.

Example URI

GET /protocol/a4977c1f-4752-4aff-b724-eec4033af25c/2/
URI Parameters
HideShow
id
string (required) Example: a4977c1f-4752-4aff-b724-eec4033af25c

Identifiant d’un protocole

revision
number (required) Example: 2

Numéro de la révision

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "id": "e5712a76-857a-4769-b27e-a3ac3fb38b4d",
  "revision": 2,
  "base": "ef14bcce-52ac-44ba-a7d1-f1441bab94de",
  "name": "référence",
  "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin massa nibh, hendrerit quis justo vitae, luctus tempor dolor. Nam quis fringilla diam.",
  "color": "#2cbfff",
  "has_comment": false,
  "metacategories": [
    {
      "id": "e5712a76-857a-4769-b27e-a3ac3fb38b4d",
      "revision": 2,
      "base": "ef14bcce-52ac-44ba-a7d1-f1441bab94de",
      "name": "référence",
      "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin massa nibh, hendrerit quis justo vitae, luctus tempor dolor. Nam quis fringilla diam.",
      "color": "#2cbfff",
      "has_comment": false
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "revision": {
      "type": "number"
    },
    "base": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "color": {
      "type": "string"
    },
    "has_comment": {
      "type": "boolean"
    },
    "metacategories": {
      "type": "array"
    }
  }
}
Response  403
HideShow

Retournée si l’utilisateur (application) n’est pas le propriétaire du protocole.

Body
{
  "error": "Application is not protocol owner."
}
Schema
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-04/schema#"
}
Response  404
HideShow

Retournée si l’un des paramêtre est érroné et qu’aucun objet ne correspond.

Body
{
  "error": "Object not found."
}
Schema
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-04/schema#"
}

Détail méta-catégorie

Voir le détail d'une méta-catégorie
GET/protocol/{protocol_id}/{revision}/metacategory/{metacategory_id}/

Permet d’obtenir la représentation d’une révision de métacatégorie.

Example URI

GET /protocol/a4977c1f-4752-4aff-b724-eec4033af25c/2/metacategory/e5712a76-857a-4769-b27e-a3ac3fb38b4d/
URI Parameters
HideShow
protocol_id
string (required) Example: a4977c1f-4752-4aff-b724-eec4033af25c

Identifiant d’un protocole

revision
number (required) Example: 2

Numéro de la révision

metacategory_id
string (required) Example: e5712a76-857a-4769-b27e-a3ac3fb38b4d

Identifiant d’une méta-categorie

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "id": "e5712a76-857a-4769-b27e-a3ac3fb38b4d",
  "revision": 2,
  "base": "ef14bcce-52ac-44ba-a7d1-f1441bab94de",
  "name": "référence",
  "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin massa nibh, hendrerit quis justo vitae, luctus tempor dolor. Nam quis fringilla diam.",
  "color": "#2cbfff",
  "has_comment": false
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "revision": {
      "type": "number"
    },
    "base": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "color": {
      "type": "string"
    },
    "has_comment": {
      "type": "boolean"
    }
  }
}
Response  403
HideShow

Retournée si l’utilisateur (application) n’est pas le propriétaire du protocole.

Body
{
  "error": "Application is not protocol owner."
}
Schema
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-04/schema#"
}
Response  404
HideShow

Retournée si l’un des paramêtre est érroné et qu’aucun objet ne correspond.

Body
{
  "error": "Object not found."
}
Schema
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-04/schema#"
}

Generated by aglio on 16 Jul 2017