{"version":1,"pages":[{"id":"-LFGxD_F-BTQRQGMaaRt","title":"Le Guide API ReST par Marmicode","pathname":"/","siteSpaceId":"sitesp_xVzgc","description":""},{"id":"-LFGzujWCawOoCj1ddw1","title":"API ReST","pathname":"/api-rest","siteSpaceId":"sitesp_xVzgc","description":""},{"id":"-LFHNvQt58gpSjnKzQYQ","title":"L'Ecosystème Moderne","pathname":"/api-rest/l-ecosysteme-moderne","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"API ReST"}]},{"id":"-LFHQoulaJEvROcvK4cb","title":"Le Besoin","pathname":"/api-rest/le-besoin","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"API ReST"}]},{"id":"-LFHRVB4w9Ap7xnoydHe","title":"Re.S.T. : REpresentational State Transfer","pathname":"/api-rest/re.s.t.-representational-state-transfer","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"API ReST"}]},{"id":"-LFHSlOeS94uDWw0LvTp","title":"Les 5 règles et ½ de l’API ReST","pathname":"/api-rest/les-5-regles-et-demi-de-l-api-rest","siteSpaceId":"sitesp_xVzgc","description":"ou plutôt les 5 contraintes et ½","breadcrumbs":[{"label":"API ReST"}]},{"id":"-LFHX_SQ_4FFCf7SP6X6","title":"Le Modèle de Maturité de Richardson","pathname":"/api-rest/le-modele-de-maturite-de-richardson","siteSpaceId":"sitesp_xVzgc","description":"Le Modèle de Maturité de Richardson ou Web Service Maturity Heuristic","breadcrumbs":[{"label":"API ReST"}]},{"id":"-LFHaxpJjDcmKtUfqIDl","title":"H.A.T.E.O.A.S. & Resource Linking","pathname":"/api-rest/h.a.t.e.o.a.s.-et-resource-linking","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"API ReST"}]},{"id":"-LFHmRRLg4-VZgZlMRZr","title":"Avis Subjectif sur H.A.T.E.O.A.S. et le Semantic Web","pathname":"/api-rest/avis-subjectif-sur-h.a.t.e.o.a.s.-et-le-semantic-web","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"API ReST"}]},{"id":"-LFHU5jFXX0zzAPRSeyw","title":"ReST over HTTP","pathname":"/api-rest/rest-over-http","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"API ReST"}]},{"id":"-LFHVUEuiURZYsebET0U","title":"HTTP & CRUD","pathname":"/api-rest/http-et-crud","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"API ReST"}]},{"id":"-LFHbVxP8lK7G_ySJilL","title":"ReSTful donc Stateless","pathname":"/api-rest/restful-donc-stateless","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"API ReST"}]},{"id":"-LFHdgu7OhFdsToxBkIv","title":"Pragmatisme, Idéologie et ReSTafarians","pathname":"/api-rest/pragmatisme-ideologie-et-restafarians","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"API ReST"}]},{"id":"-LFH-FBjAD2A32Zeg6Wf","title":"Conventions & Bonnes Pratiques","pathname":"/conventions-et-bonnes-pratiques","siteSpaceId":"sitesp_xVzgc","description":""},{"id":"-LFHekhtX7d-pl6BBZDe","title":"Nommage","pathname":"/conventions-et-bonnes-pratiques/nommage","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Conventions & Bonnes Pratiques"}]},{"id":"-LFHg-ZzWhRFmqwTmRIG","title":"Base URL","pathname":"/conventions-et-bonnes-pratiques/base-url","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Conventions & Bonnes Pratiques"}]},{"id":"-LFHgFOAqbItuprXr8S3","title":"Media Type","pathname":"/conventions-et-bonnes-pratiques/media-type","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Conventions & Bonnes Pratiques"}]},{"id":"-LFHggiYcLGhHVWA7GRl","title":"Versioning","pathname":"/conventions-et-bonnes-pratiques/versioning","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Conventions & Bonnes Pratiques"}]},{"id":"-LFHjXJWqeOWQKvuXJWH","title":"Propriété “id”","pathname":"/conventions-et-bonnes-pratiques/propriete-id","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Conventions & Bonnes Pratiques"}]},{"id":"-LFHk-XeeykFN2mxapL4","title":"Polymorphisme","pathname":"/conventions-et-bonnes-pratiques/polymorphisme","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Conventions & Bonnes Pratiques"}]},{"id":"-LFHkVs-ARFNe6FSwyTU","title":"Datetime","pathname":"/conventions-et-bonnes-pratiques/datetime","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Conventions & Bonnes Pratiques"}]},{"id":"-LFHkpwxW7_119fHJg1T","title":"Ressource d'Association","pathname":"/conventions-et-bonnes-pratiques/ressource-dassociation","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Conventions & Bonnes Pratiques"}]},{"id":"-LFHopiqli936vggn2ob","title":"Pourquoi Appliquer ces Bonnes Pratiques","pathname":"/conventions-et-bonnes-pratiques/pourquoi-appliquer-ces-bonnes-pratiques","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Conventions & Bonnes Pratiques"}]},{"id":"-Lk83aZSSQcXAsWx4CGl","title":"Zalando ReSTful API Guidelines","pathname":"/conventions-et-bonnes-pratiques/zalando-restful-api-guidelines","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Conventions & Bonnes Pratiques"}]},{"id":"-LFH-t03L5R__Z3dcaDB","title":"Les Outils","pathname":"/les-outils","siteSpaceId":"sitesp_xVzgc","description":""},{"id":"-LFHxf4vpFSMTLAcvS8d","title":"Swagger","pathname":"/les-outils/swagger","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Les Outils"}]},{"id":"-LXYSuvrN7cNBSrqJJl5","title":"OpenAPI Visual Editors","pathname":"/les-outils/restlet","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Les Outils"}]},{"id":"-LrOdyKcxCwLXOwlniRf","title":"IDE Plugins","pathname":"/les-outils/ide-plugins","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Les Outils"}]},{"id":"-LFHygZbDF-rqi4E8R0q","title":"Postman","pathname":"/les-outils/postman","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Les Outils"}]},{"id":"-Ly8dCYFrv1bwU4fry-W","title":"Insomnia","pathname":"/les-outils/insomnia","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Les Outils"}]},{"id":"-MOfwjvdtwQd-3dd2BZO","title":"Fake & Sandbox","pathname":"/les-outils/fake-and-sandbox","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Les Outils"}]},{"id":"-LFHyor6Re2KUn35a_y9","title":"JSON Generator","pathname":"/les-outils/json-generator","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Les Outils"}]},{"id":"-LXNnbgS23-rFevm2Nce","title":"Pact","pathname":"/les-outils/pact","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Les Outils"}]},{"id":"-LFH-wBHqNLezieACJih","title":"Sécurité des APIs ReST","pathname":"/securite-des-apis-rest","siteSpaceId":"sitesp_xVzgc","description":""},{"id":"-LXNvsgoVdgvNYluxprj","title":"OWASP Top 10","pathname":"/securite-des-apis-rest/owasp-top-10","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"}]},{"id":"-LFI0twKSLx-thBk-F6y","title":"Authentification et Session Management","pathname":"/securite-des-apis-rest/authentification-et-session-management","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"}]},{"id":"-LFIPETo3xRLjjUn8jgH","title":"Autorisation et Gestion des Permissions","pathname":"/securite-des-apis-rest/autorisation-et-gestion-des-permissions","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"}]},{"id":"-LFJW_ErhqEMuCLxa7MF","title":"Validation, Canonicalization, Escaping & Sanitization","pathname":"/securite-des-apis-rest/validation-canonicalization-escaping-et-sanitization","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"}]},{"id":"-LFJYgof5Br7z7gKK4uY","title":"Cookies are EVIL","pathname":"/securite-des-apis-rest/cookies-are-evil","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"}]},{"id":"-LFJpYuX1eLhP2Cj3MoB","title":"C.O.R.S.","pathname":"/securite-des-apis-rest/c.o.r.s.","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"}]},{"id":"-LFLcE4YwuJKZItKDFq1","title":"C.S.R.F.","pathname":"/securite-des-apis-rest/c.s.r.f.","siteSpaceId":"sitesp_xVzgc","description":"Cross-Site Request Forgery (ou X.S.R.F.)","breadcrumbs":[{"label":"Sécurité des APIs ReST"}]},{"id":"-LFLeGItWvpZSiMm_hwB","title":"C.S.R.F. & Media Type","pathname":"/securite-des-apis-rest/c.s.r.f.-and-media-type","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"}]},{"id":"-LFLgUSnGZW9JmJYrxb4","title":"C.S.R.F. Mitigation","pathname":"/securite-des-apis-rest/c.s.r.f.-mitigation","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"}]},{"id":"-LFLh9G3gfzBUjgabuRh","title":"C.S.R.F. & \"Resource Linking\"","pathname":"/securite-des-apis-rest/c.s.r.f.-and-resource-linking","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"}]},{"id":"-LFLyITpfhjNHw1Jw9j8","title":"J.O.S.E.","pathname":"/securite-des-apis-rest/j.o.s.e.","siteSpaceId":"sitesp_xVzgc","description":"JavaScript Object Signing and Encryption","breadcrumbs":[{"label":"Sécurité des APIs ReST"}]},{"id":"-LFLyQupCB91_AzJ4TUd","title":"J.W.K.","pathname":"/securite-des-apis-rest/j.o.s.e./j.w.k.","siteSpaceId":"sitesp_xVzgc","description":"JSON Web Key","breadcrumbs":[{"label":"Sécurité des APIs ReST"},{"label":"J.O.S.E."}]},{"id":"-LFLyUzgTPaKut8qPxsi","title":"J.W.S.","pathname":"/securite-des-apis-rest/j.o.s.e./j.w.s.","siteSpaceId":"sitesp_xVzgc","description":"JSON Web Signature","breadcrumbs":[{"label":"Sécurité des APIs ReST"},{"label":"J.O.S.E."}]},{"id":"-LFLyglGNfM3f73CdwvB","title":"J.W.E.","pathname":"/securite-des-apis-rest/j.o.s.e./j.w.e.","siteSpaceId":"sitesp_xVzgc","description":"JSON Web Encryption","breadcrumbs":[{"label":"Sécurité des APIs ReST"},{"label":"J.O.S.E."}]},{"id":"-LFLyvDlDpRrLykXDbJS","title":"J.W.T.","pathname":"/securite-des-apis-rest/j.w.t.","siteSpaceId":"sitesp_xVzgc","description":"JSON Web Token","breadcrumbs":[{"label":"Sécurité des APIs ReST"}]},{"id":"-LFLz-PzHOZQhDYbsWmQ","title":"Description et Fonctionnement de JWT","pathname":"/securite-des-apis-rest/j.w.t./description-et-fonctionnement-de-jwt","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"},{"label":"J.W.T."}]},{"id":"-LFLz5cGAdI-9pxPuIia","title":"Usages et Avantages","pathname":"/securite-des-apis-rest/j.w.t./usages-et-avantages","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"},{"label":"J.W.T."}]},{"id":"-LFLzBxGp5NCED8DQWAd","title":"Utilisation de JWT pour l’Authentification","pathname":"/securite-des-apis-rest/j.w.t./utilisation-de-jwt-pour-lauthentification","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"},{"label":"J.W.T."}]},{"id":"-LFLzIK5Wd9uv_tv89IS","title":"JWT, Authentification, Sessions et Risques Sécurité","pathname":"/securite-des-apis-rest/j.w.t./jwt-authentification-sessions-et-risques-securite","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"},{"label":"J.W.T."}]},{"id":"-LFLzOmBhB4C_r6ThX9R","title":"Recommandations JWT","pathname":"/securite-des-apis-rest/j.w.t./recommandations-jwt","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"},{"label":"J.W.T."}]},{"id":"-LFLl3Cog3489J3YevzM","title":"OAuth 2","pathname":"/securite-des-apis-rest/oauth-2","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"}]},{"id":"-LFLlE3q4bAkVKdGJy7a","title":"OAuth 2 Roles","pathname":"/securite-des-apis-rest/oauth-2/oauth-2-roles","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"},{"label":"OAuth 2"}]},{"id":"-LFLmncJqfNzY3n80Nb8","title":"OAuth 2 Abstract Flow","pathname":"/securite-des-apis-rest/oauth-2/oauth-2-abstract-flow","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"},{"label":"OAuth 2"}]},{"id":"-LFLn5Gt1A9pRDclhJ9o","title":"OAuth 2 Authorization Code Flow","pathname":"/securite-des-apis-rest/oauth-2/oauth-2-authorization-code-flow","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"},{"label":"OAuth 2"}]},{"id":"-LFLsPzOWpCWpuI6rLwc","title":"OAuth 2 Implicit Flow","pathname":"/securite-des-apis-rest/oauth-2/oauth-2-implicit-flow","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"},{"label":"OAuth 2"}]},{"id":"-LFLu42UYmv7bj096JFW","title":"OAuth 2 Resource Owner Password Credentials Flow","pathname":"/securite-des-apis-rest/oauth-2/oauth-2-resource-owner-password-credentials-flow","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"},{"label":"OAuth 2"}]},{"id":"-LFLuhzhTckkefptBFuo","title":"OAuth 2 Client Credentials","pathname":"/securite-des-apis-rest/oauth-2/oauth-2-client-credentials","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"},{"label":"OAuth 2"}]},{"id":"-LFLusUeyi4RW0MdeCeK","title":"OAuth 2 Registration","pathname":"/securite-des-apis-rest/oauth-2/oauth-2-registration","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"},{"label":"OAuth 2"}]},{"id":"-LFLvNyFR14JD-mw_w1w","title":"OAuth 2 Risques & Recommandations","pathname":"/securite-des-apis-rest/oauth-2/oauth-2-risques-et-recommandations","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"},{"label":"OAuth 2"}]},{"id":"-LFLwCENLmBilButVxAs","title":"OAuth 2 Substitution Attack","pathname":"/securite-des-apis-rest/oauth-2/oauth-2-substitution-attack","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"},{"label":"OAuth 2"}]},{"id":"-LFM4MOzUrKbBK5sJo8p","title":"OpenID Connect","pathname":"/securite-des-apis-rest/openid-connect","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"}]},{"id":"-LFM4eCD-adFZ7HggOiN","title":"Terminologie","pathname":"/securite-des-apis-rest/openid-connect/terminologie","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"},{"label":"OpenID Connect"}]},{"id":"-LFM4vGipWcj2kIMYo9Q","title":"Quoi de Neuf ?","pathname":"/securite-des-apis-rest/openid-connect/quoi-de-neuf","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"},{"label":"OpenID Connect"}]},{"id":"-LFM6FmQoBrZC0v6eVxx","title":"OpenID Connect Flows","pathname":"/securite-des-apis-rest/openid-connect/openid-connect-flows","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"},{"label":"OpenID Connect"}]},{"id":"-LFM74wY_Wx6sAaV9WO5","title":"Que Faire ?","pathname":"/securite-des-apis-rest/openid-connect/que-faire","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Sécurité des APIs ReST"},{"label":"OpenID Connect"}]},{"id":"-LFH-qc7wkpqB77avc1_","title":"Autres Spécifications","pathname":"/autres-specifications","siteSpaceId":"sitesp_xVzgc","description":""},{"id":"-LFHqSP0JPFGkswSOqbe","title":"JSON API","pathname":"/autres-specifications/json-api","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Autres Spécifications"}]},{"id":"-LFHvODBIERL4l5ii-Lr","title":"H.A.L.","pathname":"/autres-specifications/h.a.l.","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Autres Spécifications"}]},{"id":"-LFHwI4cQlqJeZjd-pGe","title":"JSON LD","pathname":"/autres-specifications/json-ld","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Autres Spécifications"}]},{"id":"-LFHwYs1t91XXRF0DH-0","title":"Les Autres Initiatives","pathname":"/autres-specifications/les-autres-initiatives","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Autres Spécifications"}]},{"id":"-LFHwiEapuABF_OGQt57","title":"So What?","pathname":"/autres-specifications/so-what","siteSpaceId":"sitesp_xVzgc","description":"","breadcrumbs":[{"label":"Autres Spécifications"}]},{"id":"-LG_4JriMnDwPNgBfT7l","title":"Quelques Liens & Ressources","pathname":"/quelques-liens","siteSpaceId":"sitesp_xVzgc","description":""}]}