- From: elf Pavlik via GitHub <sysbot+gh@w3.org>
- Date: Sun, 01 Oct 2017 17:13:23 +0000
- To: public-hydra-logs@w3.org
Following-up on my ACTION from last telecon, I chose a Vimeo API to review: https://developer.vimeo.com/api/endpoints
Below you can find endpoints relevant to what concerns this issue
---
### Like
https://developer.vimeo.com/api/endpoints/likes
#### Get all videos a user has liked
https://developer.vimeo.com/api/endpoints/likes#GET/users/{user_id}/likes
```
GET https://api.vimeo.com/users/{user_id}/likes
```
eg.
```http
GET /users/elfpavlik/likes
```
```http
HTTP 200 OK
```
#### Like a video
https://developer.vimeo.com/api/endpoints/likes#PUT/users/{user_id}/likes/{video_id}
```
PUT /users/{user_id}/likes/{video_id}
```
eg.
```http
PUT /users/elfpavlik/likes/144522067
```
```http
HTTP 204 No Content
```
#### Unlike a video
https://developer.vimeo.com/api/endpoints/likes#DELETE/users/{user_id}/likes/{video_id}
```
DELETE /users/{user_id}/likes/{video_id}
```
eg.
```http
DELETE /users/elfpavlik/likes/144522067
```
```http
HTTP 204 No Content
```
### Watch Later
* https://developer.vimeo.com/api/endpoints/users#GET/users/{user_id}/watchlater
* https://developer.vimeo.com/api/endpoints/users#PUT/users/{user_id}/watchlater/{video_id}
* https://developer.vimeo.com/api/endpoints/users#DELETE/users/{user_id}/watchlater/{video_id}
### Channels
* https://developer.vimeo.com/api/endpoints/channels#GET/users/{user_id}/channels
* https://developer.vimeo.com/api/endpoints/channels#GET/channels/{channel_id}/users
* https://developer.vimeo.com/api/endpoints/channels#PUT/users/{user_id}/channels/{channel_id}
* https://developer.vimeo.com/api/endpoints/channels#DELETE/users/{user_id}/channels/{channel_id}
---
Some observations:
* It uses a dedicated resource to represent each 'membership' in a list/collection
* PUT to create new resource representing a 'membership'
* DELETE to remove existing resource representing a 'membershipt'
* It does NOT follow [URI opacity](https://www.w3.org/TR/webarch/#uri-opacity) good practice
* client adds '/' and local id of a video to the IRI denoting the collection to create resource representing 'membership' of that video in that collection
* It relies on the server to update the resource representing collection based on operations on resources representing memberships in this collection
* in case of channels subscriptions it will update both collections, so on `PUT /users/{user_id}/channels/{channel_id}` server will update both
* `/users/{user_id}/channels`
* `/channels/{channel_id}/users`
--
GitHub Notification of comment by elf-pavlik
Please view or discuss this issue at https://github.com/HydraCG/Specifications/issues/134#issuecomment-333391484 using your GitHub account
Received on Sunday, 1 October 2017 17:13:22 UTC