Files
medusa-plugin-blog/README.md
T
2023-05-20 12:11:39 -05:00

3.8 KiB

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 experimental.

Installation

yarn add medusa-plugin-blog

Configuration

const plugins = [
	...other plugins,
	{ 
		resolve: `medusa-plugin-blog`
	},
	...other plugins
]

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