-
Notifications
You must be signed in to change notification settings - Fork 0
/
draft_1.txt
155 lines (95 loc) · 3.11 KB
/
draft_1.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
SAP: Super Article Protocole (draft 1)
0- Introduction
1- Notation
1.0- Type de variable
1.1- Information complémentaire
2- Objet
2.0- Article
2.1- Section
2.2- Content
2.3- Type
3- Communication
3.0- Introduction
3.1- Code d'erreur
4- Format URL
4.0 Détail article
4.0.0 Requête
4.0.1 Réponse
4.1 Détail page
4.1.0 Requête
4.1.1 Réponse
4.2 Articles archivés
4.2.0 Requête
4.2.1 Réponse
0- Introduction
SAP acronyme de "Super Article Protocole".
Basé sur HTTP et JSON.
Il décrit un format générique d'article et un style de communication pour la récupération d'article.
Pensé par Johann Lecocq (johann-lecocq.fr)
Un article décrit un contenu pouvant être divisé en plusieurs sous partie.
Une page contient plusieurs articles.
1- Notation
1.0- Type de variable
[str] -> chaine de caractères au format unicode
[int] -> entier 4 octets
[date] -> date au format dd/MM/yyyy par exemple 06/10/2014
[enu(X)] -> énumération de type X
[list(X)] -> liste de valeurs de type X
1.1- Information complémentaire
(OPT) -> paramètre ou champ optionnel
2- Objet
2.0- Article
L'objet Article décrit les informations d'un article.
Il peut y avoir plusieurs sections sur un article, par exemple l'article en lui même mais aussi les commentaires.
Article:
id[str]: identifiant de l'article
publish_date[str](OPT): date de publication de l'article
categorie[str](OPT): catégorie de l'article
author[str](OPT): auteur de l'article
sections[list(Section)]: liste de section
2.1- Section
L'objet Section contient les données de l'article
Section:
id[str]: identifiant de la section
contents[list(Content)]: liste de content
2.2- Content
L'objet Content décrit la donnée réelle de l'article, un texte, une image en Base64 par exemple.
Content:
type[enu(Type)]: Type de la valeur
value[str]: valeur du contenu en chaine de caractères
2.3- Type
Enumération des types de valeur que content peut accepter.
Type:
STR-> chaine de caractères au format unicode
INT-> entier
BASE64 -> texte au format ascii encodé en Base64
IMG/Base64 -> image encodé au format Base64
BIN -> donnée binaire encodé en Base64
3- Communication
3.0- Introduction
Il est basé sur le protocole HTTP/1.0. Il s'inspire du style d'architecture REST.
3.1- Code d'erreur
Il reprend les mêmes codes d'erreur que HTTP.
Le code d'erreur "521 Parsing Error" est ajouté dans le cas où le serveur d'article est un serveur proxy qui parse lui même des articles pour les renvoyer au format décrit par le protocole SAP.
Si le serveur renvoie un code d'erreur 521, le corps de la réponse est corrompu.
4- Format URL
4.0 Détail article
4.0.0 Requête
/articles/{id}
id: identifiant de l'article
4.0.1 Réponse
Retourne un objet Article.
4.1 Détail page
4.1.0 Requête
/pages/{id}
id: identifiant de la page
4.1.1 Réponse
Retourne un tableau d'Article.
4.2 Articles archivés
4.2.0 Requête
/archives/{annee}/{mois}/{jour}
annee: année de publication
mois: mois de publication
jour(OPT): jour de publication
4.2.1 Réponse
Retourne un tableau d'Article publié le {jour}/{mois}/{annee} ou le {mois}/{annee}.