Skip to content

Author API

Fraser Redford edited this page Apr 15, 2021 · 21 revisions

GET author/<str:id>/

This will retrieve the author information for a given author.

Request Requirements

No body Required

Sample Response

{
    "type": "author",
    "id": "https://team6-project-socialdistrib.herokuapp.com/author/21d2d52bf3c34b84a45951d53b472a08",
    "host": "https://team6-project-socialdistrib.herokuapp.com/",
    "displayName": "Jeff",
    "url": "https://team6-project-socialdistrib.herokuapp.com/author/21d2d52bf3c34b84a45951d53b472a08",
    "github": "https://github.com/Jeff"
}

Response Codes

  • 200 OK upon a successful retrieval of a profile
  • 403 FORBIDDEN if an user is not authenticated
  • 400 BAD REQUEST if bad information is passed in the request

POST author/<str:id>/

This will update the author object specified by the id in the request URL.

Request Requirements

The host, ID, and URL of the author cannot be changed, however they can be sent in the request for a standard author object. A JSON object requiring the following:

Field Name: Value:
type (Optional) "author"
id (Optional) Should be a HATEOAS URL containing the UUID of the author at the end, will not be updated
host (Optional) The hostname of the authors server
displayName (Required) Should be a unique string for the users name
url (Optional) Should be the URL of the user on the server
github (Required) Should be the GitHub URL of the user

Sample Request

{
    "type": "author",
    "id": "https://team6-project-socialdistrib.herokuapp.com/author/21d2d52bf3c34b84a45951d53b472a08",
    "host": "https://team6-project-socialdistrib.herokuapp.com/",
    "displayName": "Jeff2",
    "url": "https://team6-project-socialdistrib.herokuapp.com/author/21d2d52bf3c34b84a45951d53b472a08",
    "github": "https://github.com/Jeff2"
}

Sample Response

{
    "type": "author",
    "id": "https://team6-project-socialdistrib.herokuapp.com/author/21d2d52bf3c34b84a45951d53b472a08",
    "host": "https://team6-project-socialdistrib.herokuapp.com/",
    "displayName": "Jeff2",
    "url": "https://team6-project-socialdistrib.herokuapp.com/author/21d2d52bf3c34b84a45951d53b472a08",
    "github": "https://github.com/Jeff2"
}

GET authors?more=True (For Local Access Only)

This will return a list of all authors registered with the local node and all other nodes.

Request Requirements

No body requirements

Sample Request

No body request required

Sample Response

[
    {
        "type": "author",
        "id": "https://team6-project-socialdistrib.herokuapp.com/author/21d2d52bf3c34b84a45951d53b472a08",
        "host": "https://team6-project-socialdistrib.herokuapp.com/",
        "displayName": "Jeff",
        "url": "https://team6-project-socialdistrib.herokuapp.com/author/21d2d52bf3c34b84a45951d53b472a08",
        "github": "https://github.com/Jeff/"
    },
    {
        "type": "author",
        "id": "https://team6-project-socialdistrib.herokuapp.com/author/6978b496f79d59fa9aa9648bf88dbaaf",
        "host": "https://team6-project-socialdistrib.herokuapp.com/",
        "displayName": "Jim",
        "url": "https://team6-project-socialdistrib.herokuapp.com/author/6978b496f79d59fa9aa9648bf88dbaaf",
        "github": "https:/tim.com/"
    }
]

Response Codes

  • 200 OK upon a successful retrieval of the author profiles
  • 403 FORBIDDEN if an user is attempting to access data they are not allowed to

Clone this wiki locally