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
|
|
|
|
|
2023-02-26 13:02:18 +09:00
|
|
|
### Create blog post
|
2023-02-06 02:51:05 +09:00
|
|
|
|
|
|
|
```
|
2023-02-26 13:02:18 +09:00
|
|
|
$ curl --location --request POST 'https://d1-blog-server.syumai.workers.dev/articles' \
|
2023-02-06 02:51:05 +09:00
|
|
|
--header 'Content-Type: application/json' \
|
|
|
|
--data-raw '{
|
2023-02-26 13:02:18 +09:00
|
|
|
"title":"example post",
|
|
|
|
"body":"body of the example post"
|
2023-02-06 02:51:05 +09:00
|
|
|
}'
|
2023-02-26 13:02:18 +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
|
|
|
```
|
|
|
|
|
2023-02-26 13:02:18 +09:00
|
|
|
### List blog posts
|
2023-02-06 02:51:05 +09:00
|
|
|
|
2023-02-26 13:02:18 +09:00
|
|
|
```
|
|
|
|
$ curl 'https://d1-blog-server.syumai.workers.dev/articles'
|
2023-02-06 02:51:05 +09:00
|
|
|
{
|
2023-02-26 13:02:18 +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
|
|
|
|
* [easyjson](https://github.com/mailru/easyjson)
|
|
|
|
- `go install github.com/mailru/easyjson/...@latest`
|
|
|
|
|
|
|
|
### Commands
|
|
|
|
|
2023-02-26 13:02:18 +09:00
|
|
|
* Before development, 1. create your own D1 database, 2. set database ID to wrangler.toml and run `wrangler d1 migrations apply [DB Name]`.
|
|
|
|
|
2023-02-06 02:51:05 +09:00
|
|
|
```
|
|
|
|
make dev # run dev server
|
|
|
|
make build # build Go Wasm binary
|
|
|
|
make publish # publish worker
|
|
|
|
```
|
|
|
|
|
|
|
|
## Author
|
|
|
|
|
|
|
|
syumai
|
|
|
|
|
|
|
|
## License
|
|
|
|
|
|
|
|
MIT
|