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

206 lines
3.8 KiB
Markdown

# 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
```bash
yarn add medusa-plugin-blog
```
## Configuration
```json
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:
```js
{
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:
```js
{
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:
```js
{
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:
```js
{
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:
```js
{
value: string!
}
```
### `POST /admin/blog/tags/:id`
update an existing blog tag object with given id
Expects body with:
```js
{
value: string!
}
```
### `DELETE /admin/blog/tags/:id`
delete an existing blog tag object with given id
## Objects
### BlogPost
```js
{
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
```js
{
id: string!,
value: string!
}
```
### BlogCategory
```js
{
id: string!,
handle: string!,
title: string!,
description: string,
keywords: string[],
metadata: jsonb,
posts: BlogPost[]
}
```
### Product
Default Medusa Product object
### Collection
Default Medusa Collection object