Express TS & GraphQL based blog api
- Rename
.env.example
to.env
- Fill the
.env
with your own configuration - Run
yarn
ornpm install
to install the dependencies - Run
yarn migrate
ornpm run migrate
to migrate your database - Run
yarn seed
ornpm run seed
to seed your database - Finally run
yarn dev
ornpm run dev
to start the server in Development Mode
- Get all posts (can use optional pagination parameters)
query {
posts(limit: 10, page: 1, orderByFieldName: "title", orderByDirection: "ASC") {
id
title
description
content
img
isActive
createdAt
updatedAt
category {
id
title
isActive
createdAt
updatedAt
}
}
}
- Get post by id
query {
post(id: 1) {
id
title
description
content
img
isActive
createdAt
updatedAt
category {
id
title
isActive
createdAt
updatedAt
}
}
}
- Create post
mutation {
createPost(data: { title: "Post 1", description: "Description 1", content: "Content 1", categoryId: 1 }) {
id
title
description
content
img
isActive
createdAt
updatedAt
category {
id
title
isActive
createdAt
updatedAt
}
}
}
- Create post with file
mutation ($file: Upload!) {
createPost(
file: $file
data: { title: "Post 1", description: "Description 1", content: "Content 1", categoryId: 1 }
) {
id
title
description
content
img
isActive
createdAt
updatedAt
category {
id
title
isActive
createdAt
updatedAt
}
}
}
- Update post
mutation {
updatePost(
id: 1
data: {
title: "Post 1 - edited"
description: "Description 1 - edited"
content: "Content 1 - edited"
categoryId: 2
}
) {
id
title
description
content
img
isActive
createdAt
updatedAt
category {
id
title
isActive
createdAt
updatedAt
}
}
}
- Delete post
mutation {
deletePost(id: 1) {
id
title
description
content
img
isActive
createdAt
updatedAt
category {
id
title
isActive
createdAt
updatedAt
}
}
}
- Get all categories
query {
categories {
id
title
isActive
createdAt
updatedAt
}
}
- Get category by id
query {
category(id: 1) {
id
title
isActive
createdAt
updatedAt
}
}
- Create category
mutation {
createCategory(data: { title: "Category 1" }) {
id
title
isActive
createdAt
updatedAt
}
}
- Update category
mutation {
updateCategory(id: 1, data: { title: "Category 1 - edited" }) {
id
title
isActive
createdAt
updatedAt
}
}
- Delete category
mutation {
deleteCategory(id: 1) {
id
title
isActive
createdAt
updatedAt
}
}
- Get all users
query {
users {
id
email
password
username
firstname
lastname
isActive
createdAt
updatedAt
}
}
- Get user by id
query {
user(id: 1) {
id
email
password
username
firstname
lastname
isActive
createdAt
updatedAt
}
}
- Create user
mutation {
createUser(
data: { email: "test@test.com", password: "123123", username: "test", firstname: "test", lastname: "test" }
) {
id
email
password
username
firstname
lastname
isActive
createdAt
updatedAt
}
}
- Update user
mutation {
updateUser(
id: 1
data: { email: "test-edit@test.com", password: "123123", username: "test", firstname: "test", lastname: "test" }
) {
id
email
password
username
firstname
lastname
isActive
createdAt
updatedAt
}
}
- Delete user
mutation {
deleteUser(id: 1) {
id
email
password
username
firstname
lastname
isActive
createdAt
updatedAt
}
}
- Register user
mutation {
registerUser(
data: { email: "test@test.com", password: "123123", username: "test", firstname: "test", lastname: "test" }
) {
accessToken
user {
id
email
username
firstname
lastname
}
}
}
- Login user
mutation {
loginUser(data: { email: "test@test.com", password: "123123" }) {
accessToken
user {
id
email
username
firstname
lastname
}
}
}
- Logout user
mutation {
logout
}
- Info user
query {
infoUser {
id
email
username
firstname
lastname
isActive
}
}
{
"authorization": "bearer <your access token>"
}