medusa-plugin-blog
Provides a basic blog backend for Medusa.
- Posts can be tagged with products, collections, and/or custom tag values.
- Posts can be queried by tag, category, product, or collection.
This plugin is under development and should be considered expirimental.
Installation
yarn add medusa-plugin-blog
Configuration
{
"plugins": [
"medusa-plugin-blog"
]
}
API Endpoints
GET /store/blog/posts
return jsons object containing an array of all blog post objects
GET /store/blog/posts/:handle
return json object containing a single blog post object
GET /store/blog/categories
return json object containing an array of all blog category objects
GET /store/blog/categories/:handle
return json object containing a single blog category object
GET /store/blog/categories/:handle/posts
return json object containing an array of all blog post objects for a given category
GET /store/blog/tags
return json object containing an array of all blog tag objects
GET /store/blog/tags/posts
return json object containing an array of all blog post objects for a given tag or array of tags
Example: /store/blog/tags/posts?tag=tag1&tag=tag2&tag=tag3 etc
GET /store/blog/products/:id
return json object containing an array of all blog post objects for a product with given id
GET /store/blog/collections/:id
return json object containing an array of all blog post objects for a collection with given id
POST /admin/blog/categories
create a new blog category object Expects body with:
{
handle: string!,
title: string!,
description: string,
keywords: string[],
metadata: jsonb
}
POST /admin/blog/categories/:id
update an existing blog category object with given id Expects body with:
{
handle: string!,
title: string!,
description: string,
keywords: string[],
metadata: jsonb
}
DELETE /admin/blog/categories/:id
delete an existing blog category object with given id
POST /admin/blog/posts
create a new blog post object Expects body with:
{
handle: string!,
title: string!,
author: string,
published: boolean,
content: string,
description: string,
keywords: string[],
category_id: string,
tag_ids: string[],
product_ids: string[],
collection_ids: string[],
metadata: jsonb
}
POST /admin/blog/posts/:id
update an existing blog post object with given id Expects body with:
{
handle: string!,
title: string!,
author: string,
published: boolean,
content: string,
description: string,
keywords: string[],
category_id: string,
tag_ids: string[],
product_ids: string[],
collection_ids: string[],
metadata: jsonb
}
DELETE /admin/blog/posts/:id
delete an existing blog post object with given id
POST /admin/blog/tags
create a new blog tag object Expects body with:
{
value: string!
}
POST /admin/blog/tags/:id
update an existing blog tag object with given id Expects body with:
{
value: string!
}
DELETE /admin/blog/tags/:id
delete an existing blog tag object with given id
Objects
BlogPost
{
id: string!,
handle: string!,
title: string!,
author: string,
published: string!,
content: string,
description: string,
keywords: string[],
category_id: string,
category: Category,
tags: BlogTag[],
products: Product[],
collections: Collection[],
metadata: jsonb,
created_at: DateTime!,
updated_at: DateTime!
}
BlogTag
{
id: string!,
value: string!
}
BlogCategory
{
id: string!,
handle: string!,
title: string!,
description: string,
keywords: string[],
metadata: jsonb,
posts: BlogPost[]
}
Product
Default Medusa Product object
Collection
Default Medusa Collection object