78 lines
1.6 KiB
Markdown
Raw Permalink Normal View History

2023-02-06 02:51:05 +09:00
# d1-blog-server
* A simple Blog server implemented in Go and compiled with tinygo.
* This example is using Cloudflare D1.
# WIP
## Example
* https://d1-blog-server.syumai.workers.dev
### Create blog post
2023-02-06 02:51:05 +09:00
```
$ curl -X POST 'https://d1-blog-server.syumai.workers.dev/articles' \
-H 'Content-Type: application/json' \
-d '{
"title":"example post",
"body":"body of the example post"
2023-02-06 02:51:05 +09:00
}'
{
"article": {
{
"id": "f9e8119e-881e-4dc5-9307-af4f2dc79891",
"title": "example post",
"body": "body of the example post",
"createdAt": 1677382874
}
}
}
2023-02-06 02:51:05 +09:00
```
### List blog posts
2023-02-06 02:51:05 +09:00
```
$ curl 'https://d1-blog-server.syumai.workers.dev/articles'
2023-02-06 02:51:05 +09:00
{
"articles": [
{
"id": "bea6cd80-5a83-45f0-b061-0e13a2ad5fba",
"title": "example post 2",
"body": "body of the example post 2",
"createdAt": 1677383758
},
{
"id": "f9e8119e-881e-4dc5-9307-af4f2dc79891",
"title": "example post",
"body": "body of the example post",
"createdAt": 1677382874
}
]
2023-02-06 02:51:05 +09:00
}
```
## Development
### Requirements
This project requires these tools to be installed globally.
* wrangler
* tinygo
### Commands
```
2023-02-26 17:40:24 +09:00
# development
make init-db-local # initialize local DB (remove all rows)
make dev # run dev server
make build # build Go Wasm binary
2023-02-26 17:40:24 +09:00
# production
make init-db # initialize production DB (remove all rows)
make deploy # deploy worker
2023-02-06 02:51:05 +09:00
```
2023-02-26 17:40:24 +09:00
* Notice: This example uses raw SQL commands to initialize the DB for simplicity, but in general you should use `wrangler d1 migraions` for your application.