Skip to content

Follower API

Fraser Redford edited this page Mar 29, 2021 · 13 revisions

GET /author/<str:author_id>/followers

This will return a list of authors that follow the author specified in the URL.

Request Requirements

No Body Required

Sample Response

{
    "type": "followers",
    "items": [
        {
            "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": "http://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://github.com/Jim"
        }
    ]
}

Response Codes

  • 200 OK for a successful return of a list
  • 400 BAD REQUEST if information is missing in the request
  • 403 FORBIDDEN if the requesting user is not authenticated

GET /author/<str:author_id>/followers/<str:foreign_id>

Retrieves the follow object if the author foreign_id follows the author author_id, regardless of whether or not they are friends.

Request Body

No Body Required

Sample Response

{
    "type": "Follow",
    "summary": "Jeff wants to follow Jim",
    "actor": {
        "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"
    },
    "object": {
        "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://github.com/Jim"
    }
}

PUT /author/<str:author_id>/followers/<str:foreign_id>

Creates a follow between the authors where foreign_id wants to follow author_id. This will check if the reciprocal follow already exists and sets them to be friends.

Request Body

Field Name: Value:
type (Optional) "Follow"
actor (Required) Should contain a valid author object, see Author API
object (Required) Should contain a valid author object, see Author API

Sample Response:

{
    "type": "Follow",
    "summary": "Jeff wants to follow Jim",
    "actor": {
        "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"
    },
    "object": {
        "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://github.com/Jim"
    }
}



DELETE /author/<str:author_id>/followers/<str:foreign_id>

Delete foreign_id as a follower of author_id. This will undo friend status if a reciprocal follow exists. This will also not delete author_id as a follower of foreign_id, if such a follow exists.

Request Body

No body required

Sample Response

{
    "type": "Follow",
    "summary": "Jeff wants to follow Jim",
    "actor": {
        "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"
    },
    "object": {
        "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://github.com/Jim"
    }
}

Clone this wiki locally