From 860e5959d41adea4c18bda62c10c0517884b7612 Mon Sep 17 00:00:00 2001 From: Art4 Date: Sat, 20 May 2017 15:40:40 +0200 Subject: [PATCH] =?UTF-8?q?Blogpost=20f=C3=BCr=20v0.8=20erstellt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/_posts/2017-05-21-Youthweb-API-0.8.md | 174 +++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 docs/_posts/2017-05-21-Youthweb-API-0.8.md diff --git a/docs/_posts/2017-05-21-Youthweb-API-0.8.md b/docs/_posts/2017-05-21-Youthweb-API-0.8.md new file mode 100644 index 0000000..309c0eb --- /dev/null +++ b/docs/_posts/2017-05-21-Youthweb-API-0.8.md @@ -0,0 +1,174 @@ +--- +title: "Youthweb-API 0.8" +categories: API +tags: [api, release] +summary: "Die neue Version der Youthweb-API hat jetzt eine neue Posts-Resource." +--- +## Changelog + +### Neu + +- Neue geschützte Resource `posts/{post_id}` für Details zu einem Pinnwand-Eintrag. +- Es gibt einen neuen Scope `post:read`, um die Posts eines Users anzufragen, die nur für den User oder seine Freunde freigegeben wurden. +- Bei Posts gibt es neue Endpoints zum Autor wie `/posts//author` und `/posts//relationships/author`. +- Bei Posts gibt es neue Entpoints zum User, an dessen Pinnwand der Post steht, wie `/posts//parent` und `/posts//relationships/parent`. +- Bei Usern gibt es einen neuen Endpoint `users//posts`, um die Pinnwand-Einträge eines Users aufzulisten. + +### Geändert + +- Wir haben ein neues Support-Model für die Versionen erstellt. Damit garantieren wir mindestens 1 Jahr Support für jede Version. Siehe [hier](api_general_versions.html#support) für mehr Informationen. +- Die Lizenz der Youthweb-API wurde von GPL2 zu GPL3 geändert. + +### Veraltet + +- Die Versionen 0.6 and 0.7 sind jetzt veraltet und zeigen eine Warnung im `meta`-Bereich an. Verwende in deinen Apps jetzt die Version 0.8. + +### Entfernt + +- **Breaking:** Der Support für die Version 0.4 wurde eingestellt. Requests mit dieser Version erhalten einen 406 Error zurück. + +## Beispiele + +### Einen Post anfragen + +**Request** + +``` +GET https://api.youthweb.net/posts/d5a5a2c3-041b-4985-907c-74a2131efc98 +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.8 +Content-Type: application/vnd.api+json +Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs +``` + +**Response** + +``` +Status: 200 OK +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.8 +Content-Type: application/vnd.api+json + +{ + "data": { + "type": "posts", + "id": "d5a5a2c3-041b-4985-907c-74a2131efc98", + "attributes": { + "title": "The post title", + "content": "Lorem ipsum dolor sit amet, sed libris elaboraret eu.", + "view_allowed_for": "users", + "comments_allowed": true, + "comments_count": 15, + "created_at": "2016-01-01T21:00:00+01:00", + "updated_at": "2016-02-11T17:13:05+01:00", + }, + "relationships": { + "author": {}, + "parent": {} + }, + "links": { + "self": "/posts/d5a5a2c3-041b-4985-907c-74a2131efc98" + } + } +} +``` + +### Alle Posts eines Users anfragen + +Beim Request nach allen Posts eines Users wird ein Array der Posts zurückgeliefert. Die Objekte `parent` und `author` sind automatisch im `included`-Attribute enthalten. In den `links` und in `meta` finden sich außerdem Informationen zur Pagination. + +**Request** + +``` +GET https://api.youthweb.net/users/123456/posts +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.8 +Content-Type: application/vnd.api+json +Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs +``` + +**Response** + +``` +Status: 200 OK +Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.8 +Content-Type: application/vnd.api+json + +{ + "data": + [ + { + "type": "posts", + "id": "d5a5a2c3-041b-4985-907c-74a2131efc98", + "attributes": { + "title": "The post title", + "content": "Lorem ipsum dolor sit amet, sed libris elaboraret eu.", + "view_allowed_for": "users", + "comments_allowed": true, + "comments_count": 15, + "created_at": "2016-01-01T21:00:00+01:00", + "updated_at": "2016-02-11T17:13:05+01:00", + }, + "relationships": { + "author": + { + "links": + { + "self": "/posts/d5a5a2c3-041b-4985-907c-74a2131efc98/relationships/author", + "related": "/posts/d5a5a2c3-041b-4985-907c-74a2131efc98/author" + }, + "data": + { + "type": "users", + "id": "1" + } + }, + "parent": + { + "links": + { + "self": "/posts/d5a5a2c3-041b-4985-907c-74a2131efc98/relationships/parent", + "related": "/posts/d5a5a2c3-041b-4985-907c-74a2131efc98/parent" + }, + "data": + { + "type": "users", + "id": "1" + } + } + }, + "links": { + "self": "/posts/d5a5a2c3-041b-4985-907c-74a2131efc98" + } + } + ], + "included": + [ + { + "type": "users", + "id": "1", + "attributes": {}, + "links": + { + "self": "/users/123456" + } + } + ], + "meta": + { + "pagination": + { + "total": 1, + "count": 1, + "per_page": 10, + "current_page": 1, + "total_pages": 1 + } + }, + "links": + { + "self": "/users/123456/posts?page=1", + "first": "/users/123456/posts?page=1", + "last": "/users/123456/posts?page=1" + } +} +``` + +{% include links.html %}