Skip to content

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
    }
}

Releases

Packages

Contributors

Languages