Commit 439ffce9 authored by Art4's avatar Art4

Merge branch 'release-0.16.x' into 'master'

Release 0.16.0

See merge request !37
parents 35278855 d86855f3
Pipeline #170944328 passed with stages
in 4 minutes and 17 seconds
......@@ -29,7 +29,7 @@ behat:
- nodejs --version
- npm --version
- npm install
- ./node_modules/.bin/drakov --stealthmode -f "./*.apib" -p 3000&
- ./node_modules/.bin/drakov --stealthmode -f "./spec/*.apib" -p 3000&
- php -v
- php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
- php composer-setup.php
......@@ -52,6 +52,12 @@ build-docs:
when: never
- when: on_success
before_script:
- apt-get update
- curl -sL https://deb.nodesource.com/setup_10.x | bash -
- apt-get --yes install git zip unzip nodejs
- nodejs --version
- npm --version
- npm install
- cd docs
- gem install bundler
- bundle -v
......@@ -61,6 +67,33 @@ build-docs:
script:
- bundle exec jekyll build --destination ../public/
- cd ..
- mkdir -p ./public/spec/core
- echo "Render HTML for 0.16"
- cp -r ./spec ./public/spec/core/0.16
- node_modules/.bin/aglio -i ./public/spec/core/0.16/apiary.apib --no-theme-condense --theme-full-width -o ./public/spec/core/0.16/index.html
- echo "Render HTML for next version"
- git fetch origin develop:develop
- git checkout develop -- ./spec
- cp -r ./spec ./public/spec/core/next
- git reset HEAD ./spec
- git checkout -- ./spec
- node_modules/.bin/aglio -i ./public/spec/core/next/apiary.apib --no-theme-condense --theme-full-width -o ./public/spec/core/next/index.html
- echo "Render HTML for 0.15"
- git checkout 0.15.2 -- apiary.apib
- mkdir -p ./public/spec/core/0.15
- mv ./apiary.apib ./public/spec/core/0.15/apiary.apib
- node_modules/.bin/aglio -i ./public/spec/core/0.15/apiary.apib --no-theme-condense --theme-full-width -o ./public/spec/core/0.15/index.html
- echo "Render HTML for 0.14"
- git checkout 0.14 -- apiary.apib
- mkdir -p ./public/spec/core/0.14
- mv ./apiary.apib ./public/spec/core/0.14/apiary.apib
- node_modules/.bin/aglio -i ./public/spec/core/0.14/apiary.apib --no-theme-condense --theme-full-width -o ./public/spec/core/0.14/index.html
- echo "Render HTML for 0.13"
- git checkout 0.13 -- apiary.apib
- mkdir -p ./public/spec/core/0.13
- mv ./apiary.apib ./public/spec/core/0.13/apiary.apib
- node_modules/.bin/aglio -i ./public/spec/core/0.13/apiary.apib --no-theme-condense --theme-full-width -o ./public/spec/core/0.13/index.html
cache:
key: build
paths:
......
......@@ -6,6 +6,29 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
## [Unreleased](https://gitlab.com/youthweb/youthweb-api/compare/master...develop)
## [0.16.0 - 2020-07-26](https://gitlab.com/youthweb/youthweb-api/compare/0.15.2...0.16.0)
### Added
- update own `Post` or add reactions to other `Post` by using the endpoint `PATCH /posts/<post_id>`
- new attribute `content_html` in `Post` resources with the parsed HTML content
- new attribute `reactions_given` in `Post` resources with an array of reactions given by the authorized user
- new attribute `reactions_count` in `Post` resources with an object of reactions and counts given by all users
- new docs generated from API Blueprint files
### Changed
- introduce characters `Alice` and `Bob` in features allowing a more natural language
### Deprecated
- The default inclusion of "parent" and "author" relationsships in post resources is deprecated and will be removed in future, use "?include=author,parent" in query instead.
- Version 0.15 is now deprecated and support will be dropped in future. If your apps use this version upgrade them at least to version 0.16.
### Removed
- **Breaking:** The support for version 0.13 and 0.14 was dropped. Requests with this versions and below will get a 406 error response.
## [0.15.2 - 2020-06-09](https://gitlab.com/youthweb/youthweb-api/compare/0.15.1...0.15.2)
### Changed
......
......@@ -6,4 +6,10 @@ default:
contexts:
- Youthweb\Api\Core\FeatureContext:
baseUrl: "http://localhost:3000/"
apiVersion: "0.15"
apiVersion: "0.16"
editor:
paths:
- "%paths.base%/features/editor"
contexts:
- Youthweb\Api\Editor\ParserContext:
baseUrl: "http://localhost:3000/"
......@@ -8,6 +8,7 @@
"php": "^7.3",
"behat/behat": "^3.5",
"guzzlehttp/guzzle": "^6.0",
"guzzlehttp/psr7": "^1.6",
"phpunit/phpunit": "^8"
},
"config": {
......
---
title: "Youthweb-API 0.16 liefert mehr Daten zu Posts und erlaubt das Bearbeiten"
categories: API
tags: [api, release]
summary: "Youthweb-API 0.16 liefert den geparsten Content zu Posts und erlaubt das Vergeben von Reactions. Außerdem wird die API-Dokumentation verändert und in Zukunft aus API Blueprint generiert."
---
## Neues zu den Posts
Bei den Posts gibt es jetzt [drei neue Attribute](spec/core/0.16/index.html#posts-post-get):
- `content_html` gibt den Content als fertig geparstes HTML zurück
- `reactions_given` ist ein Array, dass die Reactions enthält, die der angemeldete User einem Post gegeben hat und
- `reactions_count` enthält Informationen, welche Reactions wie oft ein Post bekommen hat.
Neu ist auch, dass Posts jetzt bearbeitet werden können. Der Endpoint dazu lautet `PATCH /posts/<uuid>`.
Vorausgesetzt ein User darf einen Post bearbeiten, können die Attribute `title`, `content`, `view_allowed_for`, `comments_allowed` und `reactions_given` verändert werden. Das Verändern der ersten beiden Attribute sorgt dafür, dass sich das Attribute `update_at` aktualisiert.
Wenn nur Lesezugriff auf einen Post besteht, kann nur das Attribute `reactions_given` verändert werden. Und wenn kein Lesezugriff besteht, dann wird wie bisher ein `401` bzw `403` Error zurückgegeben.
## Neue Dokumentation
Das separate Pflegen der API Dokumentation ist teilweise sehr aufwendig. Durch das doppelte Schreiben der API Blueprints, Behat-Features und der Dokumentation schleichen sich gerne Fehler ein führen zu einer unvollständigen Dokumentation.
Daher bieten wir jetzt neu [eine automatisch generierte Dokumentation][api_endpoint_index] an, die mithilfe von [Aglio](https://github.com/danielgtaylor/aglio) aus den API Blueprint Dateien zu HTML gerendert wird.
Die alte Dokumentation wird noch bestehen bleiben, aber nicht mehr aktualisiert und wird in Zukunft entfernt werden.
## Veraltet
Bei der Post Resource werden automatisch die Relationships `author` und `parent` geladen. Dieses Verhalten wird sich in Zukunft ändern und es werden keine Relationships mehr automatisch geladen. Dadurch möchten wir die Responses in Zukunft kleiner halten.
Wenn deine App diese Relationships benötigt, dann solltest du sie ab sofort über den `include` Parameter im Querystring anfordern. Beispiel:
```
GET /posts/7b4d2748-4996-4fdd-912a-e966cb96715a?include=author,parent
```
Die Version 0.15 ist jetzt veraltet und zeigt eine Warnung im `meta`-Bereich an. In frühstens 6 Monaten wird die Unterstützung für diese Version entfernt. Verwende in deinen Apps jetzt die Version 0.16.
## Entfernt
**Breaking:** Der Support für die Versionen 0.13 and 0.14 wurde eingestellt. Sie waren seit Version 0.15 (08.09.2019) als deprecated markiert. Requests mit diesen Versionen erhalten jetzt einen 406 Error zurück.
{% include links.html %}
......@@ -8,6 +8,8 @@ permalink: api_endpoint_comments.html
folder: api
---
{% include important.html content="Diese Dokumentation wird nicht mehr gepflegt und wird in Zukunft entfernt. [Sieh dir stattdessen die neue Dokumentation an][api_endpoint_index]." %}
Dieser Endpoint kann zum Lesen eines Comments verwendet werden.
## Read
......@@ -18,7 +20,7 @@ Dieser Endpoint kann zum Lesen eines Comments verwendet werden.
```
GET https://api.youthweb.net/comments/345678
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs
```
......@@ -35,7 +37,7 @@ Für den Request können keine Parameter angegeben werden.
```
Status: 200 OK
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
{
......
......@@ -8,6 +8,8 @@ permalink: api_endpoint_events.html
folder: api
---
{% include important.html content="Diese Dokumentation wird nicht mehr gepflegt und wird in Zukunft entfernt. [Sieh dir stattdessen die neue Dokumentation an][api_endpoint_index]." %}
Dieser Endpoint liefert die Events, die in einem bestimmten Zeitraum stattfinden oder ein bestimmtes Event.
## List
......@@ -20,7 +22,7 @@ Beim Request nach den Events eines Zeitraums wird ein Array der Events zurückge
```
GET https://api.youthweb.net/events?page[start]=2017-01-01&page[end]=2017-12-31
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs
```
......@@ -38,7 +40,7 @@ Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2M
```
Status: 200 OK
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
{
......@@ -92,7 +94,7 @@ Beim Request nach einem bestimmten Event wird eine Event Resource zurückgeliefe
```
GET https://api.youthweb.net/events/4567
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs
```
......@@ -109,7 +111,7 @@ Für den Request können keine Parameter angegeben werden.
```
Status: 200 OK
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
{
......
......@@ -8,6 +8,8 @@ permalink: api_endpoint_friends.html
folder: api
---
{% include important.html content="Diese Dokumentation wird nicht mehr gepflegt und wird in Zukunft entfernt. [Sieh dir stattdessen die neue Dokumentation an][api_endpoint_index]." %}
Dieser Endpoint kann zum Lesen eines `Friends` verwendet werden.
`Friends` sind die Verbindungspunkte zwischen zwei User. User lassen sich mithilfe der `Friends` als [gerichteter Graph](https://de.wikipedia.org/wiki/Graph_(Graphentheorie)) abbilden, wobei jeder User einen Knoten und jeder `Friend` eine Kante darstellt.
......@@ -26,7 +28,7 @@ Die Kante `Friend 1` beinhaltet in der `from`-Relationship den `User A` und in d
```
GET https://api.youthweb.net/friends/45678
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs
```
......@@ -43,7 +45,7 @@ Für den Request können keine Parameter angegeben werden.
```
Status: 200 OK
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
{
......
......@@ -13,8 +13,20 @@ folder: api
- **Resource**: Eine Resource ist die Representation eines Objekts, zum Beispiel eines Users. Eine Resource, die vom Youthweb-Server geliefert wird, hat immer mindestens die Attribute `type` und `id`. Der Aufbau einer Resource ist [in JSON API spezifiziert](http://jsonapi.org/format/#document-resource-objects).
- **Endpoint**: Ein Endpoint ist eine Stelle in der Youthweb-API, mit der Daten ausgetauscht werden. Zum Beispiel liefert der Endpoint `/users/123` eine Resource, die den User mit der ID 123 representiert. Die übertragenen Daten an einem Endpoint enthalten also in fast allen Fällen eine oder mehrere Resourcen.
## API Blueprint
Die API ist in API Blueprint definiert und wird mit Aglio zu HTML gerendert. Aktuelle und ältere Versionen können hier angesehen werden:
| API | Version |
|--------------|-------------------------------------------|
| **current** | **[0.16](./spec/core/0.16/index.html)** |
| next | [develop](./spec/core/next/index.html) |
| deprecated | [0.15](./spec/core/0.15/index.html) |
## Übersicht
{% include important.html content="Diese folgende Dokumentation der Endpoints wird nicht mehr gepflegt und wird in Zukunft entfernt. [Sieh dir stattdessen die neue Dokumentation an][api_endpoint_index]." %}
| Endpoint | Beschreibung |
|---------------------------------------------------------|------------------------------------------------------------------|
| [/comments][api_endpoint_comments] | Liefert Comments-Resourcen |
......
......@@ -8,6 +8,8 @@ permalink: api_endpoint_me.html
folder: api
---
{% include important.html content="Diese Dokumentation wird nicht mehr gepflegt und wird in Zukunft entfernt. [Sieh dir stattdessen die neue Dokumentation an][api_endpoint_index]." %}
Dieser Endpoint ist ein Shortcut für `/users/{user_id}` und liefert eine [User-Resource][api_endpoint_users]. Er kann zum Beispiel verwendet werden, wenn die User-ID des autorisierten Users nicht bekannt ist, wodurch der `/users`-Endpoint noch nicht verwendet werden kann.
Siehe den [Endpoint `/users`][api_endpoint_users] für Informationen zur User-Resource.
......@@ -18,7 +20,7 @@ Siehe den [Endpoint `/users`][api_endpoint_users] für Informationen zur User-Re
```
GET https://api.youthweb.net/me
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs
```
......
......@@ -8,6 +8,8 @@ permalink: api_endpoint_object_comments.html
folder: api
---
{% include important.html content="Diese Dokumentation wird nicht mehr gepflegt und wird in Zukunft entfernt. [Sieh dir stattdessen die neue Dokumentation an][api_endpoint_index]." %}
Dieser Endpoint bietet die `/comments` Beziehungen zu einer Resource an. Die folgenden Resourcen haben eine `/comments` Beziehung:
- [Posts][api_endpoint_posts]
......@@ -22,7 +24,7 @@ Beim Request nach allen Comments einer Resource wird ein Array der Comments zur
```
GET https://api.youthweb.net/posts/d5a5a2c3-041b-4985-907c-74a2131efc98/comments
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs
```
......@@ -40,7 +42,7 @@ Für den Request können keine Parameter angegeben werden.
```
Status: 200 OK
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
{
......@@ -126,7 +128,7 @@ Du kannst mit diesem Endpoint einen neuen Comment zu einer Resource erstellen. A
```
POST https://api.youthweb.net/posts/d5a5a2c3-041b-4985-907c-74a2131efc98/comments
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs
......@@ -162,7 +164,7 @@ Für den Request können keine Parameter angegeben werden.
```
Status: 201 Created
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
Location: /comments/d5a5a2c3-041b-4985-907c-74a2131efc98
......
......@@ -8,6 +8,8 @@ permalink: api_endpoint_object_friends.html
folder: api
---
{% include important.html content="Diese Dokumentation wird nicht mehr gepflegt und wird in Zukunft entfernt. [Sieh dir stattdessen die neue Dokumentation an][api_endpoint_index]." %}
Dieser Endpoint bietet die `/friends` Beziehungen zu einer Resource an. Die folgenden Resourcen haben eine `/friends` Beziehung:
- [Users][api_endpoint_users]
......@@ -32,7 +34,7 @@ Beim Request nach allen Freunden einer Resource wird ein Array der `Friends` zur
```
GET https://api.youthweb.net/users/1/friends
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs
```
......@@ -49,7 +51,7 @@ Für den Request können keine Parameter angegeben werden.
```
Status: 200 OK
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
{
......
......@@ -8,6 +8,8 @@ permalink: api_endpoint_object_posts.html
folder: api
---
{% include important.html content="Diese Dokumentation wird nicht mehr gepflegt und wird in Zukunft entfernt. [Sieh dir stattdessen die neue Dokumentation an][api_endpoint_index]." %}
Dieser Endpoint bietet die `/posts` Beziehungen zu einer Resource an. Die folgenden Resourcen haben eine `/posts` Beziehung:
- [Users][api_endpoint_users]
......@@ -22,7 +24,7 @@ Beim Request nach allen Posts einer Resource wird ein Array der Posts zurückgel
```
GET https://api.youthweb.net/users/123456/posts
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs
```
......@@ -40,7 +42,7 @@ Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2M
```
Status: 200 OK
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
{
......@@ -52,9 +54,16 @@ Content-Type: application/vnd.api+json
"attributes": {
"title": "The post title",
"content": "Lorem ipsum dolor sit amet, sed libris elaboraret eu.",
"content_html": "<p>Lorem ipsum dolor sit amet, sed libris elaboraret eu.</p>",
"view_allowed_for": "users",
"comments_allowed": true,
"comments_count": 15,
"reactions_given": [
":+1:"
],
"reactions_count": {
":+1:": 2
},
"created_at": "2016-01-01T20:00:00+00:00",
"updated_at": "2016-02-11T16:13:05+00:00",
},
......@@ -148,7 +157,7 @@ Du kannst mit diesem Endpoint einen neuen Post zu einer Resource erstellen. Als
```
POST https://api.youthweb.net/users/123456/posts
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs
......@@ -190,7 +199,7 @@ Für den Request können keine Parameter angegeben werden.
```
Status: 201 Created
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
Location: /posts/d5a5a2c3-041b-4985-907c-74a2131efc98
......@@ -201,9 +210,12 @@ Location: /posts/d5a5a2c3-041b-4985-907c-74a2131efc98
"attributes": {
"title": "The post title",
"content": "Lorem ipsum dolor sit amet, sed libris elaboraret eu.",
"content_html": "<p>Lorem ipsum dolor sit amet, sed libris elaboraret eu.</p>",
"view_allowed_for": "users",
"comments_allowed": true,
"comments_count": 15,
"reactions_given": [],
"reactions_count": {},
"created_at": "2016-01-01T20:00:00+00:00",
"updated_at": "2016-02-11T16:13:05+00:00",
},
......
This diff is collapsed.
......@@ -8,6 +8,8 @@ permalink: api_endpoint_stats.html
folder: api
---
{% include important.html content="Diese Dokumentation wird nicht mehr gepflegt und wird in Zukunft entfernt. [Sieh dir stattdessen die neue Dokumentation an][api_endpoint_index]." %}
Dieser Endpoint liefert Statistiken zu Usern, Gruppen und Forum.
## Read
......@@ -16,7 +18,7 @@ Dieser Endpoint liefert Statistiken zu Usern, Gruppen und Forum.
```
GET https://api.youthweb.net/stats/account
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
```
......@@ -32,7 +34,7 @@ Für den Request können keine Parameter angegeben werden.
```
Status: 200 OK
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
{
......@@ -95,7 +97,7 @@ keine
```
GET https://api.youthweb.net/stats/account
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
```
......@@ -103,7 +105,7 @@ Content-Type: application/vnd.api+json
```
Status: 200 OK
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
{
......@@ -133,7 +135,7 @@ Content-Type: application/vnd.api+json
```
GET https://api.youthweb.net/stats/forum
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
```
......@@ -141,7 +143,7 @@ Content-Type: application/vnd.api+json
```
Status: 200 OK
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
{
......@@ -166,7 +168,7 @@ Content-Type: application/vnd.api+json
```
GET https://api.youthweb.net/stats/groups
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
```
......@@ -174,7 +176,7 @@ Content-Type: application/vnd.api+json
```
Status: 200 OK
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
{
......
......@@ -8,6 +8,8 @@ permalink: api_endpoint_users.html
folder: api
---
{% include important.html content="Diese Dokumentation wird nicht mehr gepflegt und wird in Zukunft entfernt. [Sieh dir stattdessen die neue Dokumentation an][api_endpoint_index]." %}
Dieser Endpoint liefert Daten zu einem User.
## Read
......@@ -18,7 +20,7 @@ Dieser Endpoint liefert Daten zu einem User.
```
GET https://api.youthweb.net/users/123456
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTgyMzE2MDAsImlzcyI6IkpOdlBnY3ROcEg1Y0s2UmMifQ.BOn0XFDDYa5iBHJb636A0C0m4sU5NO8SA_CPOVHoWNs
```
......@@ -38,7 +40,7 @@ Für den Request können keine Parameter angegeben werden.
```
Status: 200 OK
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15
Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16
Content-Type: application/vnd.api+json
{
......
......@@ -10,7 +10,7 @@ folder: api
Die API wird immer weiter entwickelt und der aktuelle Stand wird hier festgehalten. Die Änderungen an der API werden während der Entwicklung nicht immer abwärtskompatibel sein, weswegen wir [eine Versionierung](http://semver.org/) eingeführt haben. Die angefragte Version MUSS im Request-Header angegeben werden:
`Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.15`
`Accept: application/vnd.api+json, application/vnd.api+json; net.youthweb.api.version=0.16`
### Support
......@@ -22,17 +22,25 @@ Nach dem Release einer neuen Version garantieren wir den Support der Version ohn
| Version | Status | Veröffentlicht | Unterstützt bis |
|--------------|--------------------|----------------|---------------------------|
| **0.15** | :heavy_check_mark: | 2019-09-08 | mindestens 2020-09-08 |
| **0.14** | :warning: | 2019-01-13 | mindestens 2020-01-13 |
| **0.13** | :warning: | 2018-12-16 | mindestens 2019-12-16 |
| [next] | :construction: | - | - |
| **[0.16]** | :heavy_check_mark: | 2020-07-26 | mindestens 2021-07-26 |
| **[0.15]** | :warning: | 2019-09-08 | mindestens 2021-01-26 |
| [0.14] | :x: | 2019-01-13 | Version 0.16 - 2020-07-26 |
| [0.13] | :x: | 2018-12-16 | Version 0.16 - 2020-07-26 |
| 0.12 | :x: | 2017-07-16 | Version 0.15 - 2019-09-08 |
| 0.11 | :x: | 2017-07-02 | Version 0.15 - 2019-09-08 |
| 0.10 | :x: | 2017-06-18 | Version 0.15 - 2019-09-08 |
| 0.9 | :x: | 2017-06-04 | Version 0.15 - 2019-09-08 |
| 0.8 | :x: | 2017-05-21 | Version 0.15 - 2019-09-08 |
[next]: ./spec/core/next/index.html
[0.16]: ./spec/core/0.16/index.html
[0.15]: ./spec/core/0.15/index.html
[0.14]: ./spec/core/0.14/index.html
[0.13]: ./spec/core/0.13/index.html
#### Status-Legende
- :construction: **uncompleted**: noch in Arbeit befindliche Version
- :heavy_check_mark: **supported**: unterstützte Version
- :warning: **deprecated**: veraltete, aber unterstütze Version, die eine Warnung in jedem Response anzeigt
- :x: **unsupported**: nicht mehr unterstützte Version, die einen 406-Error zurückgibt
......
Feature: Interact with comments
In order to request a comment or his relationships
As a user
In order to request a comment or his relationships
As a user
Scenario: Requesting a comment
Given I have set the correct headers with valid authorization
When I request "GET /comments/345678"
Then I get a "200" response
And the correct headers are set
And the "included" property exists
And the "included" property is an array
And the "data" property exists
And the "data" property is an object
And scope into the "data" property
And the response contains 5 items
And the "type" property exists
And the "type" property is a string equalling "comments"
And the "id" property exists
And the "links" property exists
And the "attributes" property exists
And scope into the "data.attributes" property
And the response contains 2 items
And the properties exist:
"""
content
created_at
"""
And scope into the "data.links" property
And the response contains 1 items
And the properties exist:
"""
self
"""
Given I am authorized as Alice
When I request "GET /comments/345678"
Then I get a "200" response
And the correct headers are set
And the "included" property exists
And the "included" property is an array
And the "data" property exists
And the "data" property is an object
And scope into the "data" property
And the response contains 5 items
And the "type" property exists
And the "type" property is a string equalling "comments"
And the "id" property exists
And the "links" property exists
And the "attributes" property exists
And scope into the "data.attributes" property
And the response contains 2 items
And the properties exist:
"""
content
created_at
"""
And scope into the "data.links" property
And the response contains 1 items
And the properties exist:
"""
self
"""