Skip to content

TemitopeAgbaje/blogging-api

Repository files navigation

Blogging-api

The general idea here is that the api has a general endpoint that shows a list of articles that have been created by different people, and anybody that calls this endpoint, should be able to read a blog created by them or other users.

Try the apis.


  • create a new user (POST, /signup)
{
   "first_name": "Khan",
   "last_name": "Tir",
   "email": "TirKhan@yummy.ng",
   "password": "Kh@ntir123"
}
  • Log into the application (POST, /login)
{
  "email": "TirKhan@yummy.ng",
  "password": "Kh@ntir123"
}

** Remember to add the - Authorization: Bearer {token}

  • Add blog (POST, /blog/post)
{
    "title": "My day",
    "description": "My day in a few words",
    "author": "Khan Tir",
    "tags": ["day", "Lorem"],
    "body":"Lorem ipsum dolor sit amet consectetur adipisicing elit. Accusamus architecto enim cum tempore autem at, porro ad et nisi vel delectus aliquid! Ipsam odit saepe eaque sed fugiat dolores expedita perspiciatis ipsum tempore, iusto tenetur repellendus ratione esse blanditiis rerum voluptas officia adipisci alias enim ad dicta illo? Porro, non."
 }
 
  • Get blog posts (GET, /blog/posts)
Response

** you can query by read_count,state,reading_time,author,title or tags (eg. /blog/posts?read_count=1)

{
    "status": "All Post Loaded",
    "blogPost": {
        "title": "My day",
        "description": "My day in a few words",
        "author": "Khan Tir",
        "state": "draft",
        "read_count": 1,
        "reading_time": "1 mins",
        "tags": [
            "day",
            "Lorem"
        ],
        "body": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Accusamus architecto enim cum tempore autem at, porro ad et nisi vel delectus aliquid! Ipsam odit saepe eaque sed fugiat dolores expedita perspiciatis ipsum tempore, iusto tenetur repellendus ratione esse blanditiis rerum voluptas officia adipisci alias enim ad dicta illo? Porro, non.",
        "timestamp": "2022-11-06T23:37:43.273Z",
        "_id": "63684547a7cd0b68f27debb9",
        "__v": 0
    }
}
  
  • Get a blog post (GET, /blog/post/:id)
Response
{
    "status": "Post Loaded",
    "blogPost": {
        "title": "My day",
        "description": "My day in a few words",
        "author": "Khan Tir",
        "state": "draft",
        "read_count": 1,
        "reading_time": "1 mins",
        "tags": [
            "day",
            "Lorem"
        ],
        "body": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Accusamus architecto enim cum tempore autem at, porro ad et nisi vel delectus aliquid! Ipsam odit saepe eaque sed fugiat dolores expedita perspiciatis ipsum tempore, iusto tenetur repellendus ratione esse blanditiis rerum voluptas officia adipisci alias enim ad dicta illo? Porro, non.",
        "timestamp": "2022-11-06T23:37:43.273Z",
        "_id": "63684547a7cd0b68f27debb9",
        "__v": 0
    }
}
  
  • Update a blog (PUT, /blog/post/:id)
{
  "state": "published"
}
Response
{
    "status": "Post Loaded",
    "blogPost": {
        "_id": "63625a998ff518e4b496d4a8",
        "title": "My day",
        "state": "published",
        "read_count": 2,
        "reading_time": "1 mins",
        "body": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Accusamus architecto enim cum tempore autem at, porro ad et nisi vel delectus aliquid! Ipsam odit saepe eaque sed fugiat dolores expedita perspiciatis ipsum tempore, iusto tenetur repellendus ratione esse blanditiis rerum voluptas officia adipisci alias enim ad dicta illo? Porro, non.",
        "timestamp": "2022-11-02T11:55:05.578Z",
        "__v": 0,
        "author": "Khan Tir",
        "description": "My day in a few words",
        "tags": [
            "day",
            "yes"
        ]
    }
}
  • Delete the blog (DELETE, /blog/post/:id)
Response
{
    "status": "Deleted  successful",
    "blogPost": {
        "acknowledged": true,
        "deletedCount": 1
    }
}

About

Altschool assessment

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published