Todo-BackendのTODOアプリのスペックに対応したバックエンドAPIサーバです。
https://todobackend.com/client/index.html?https://todo-backend-golang-mc.lolipop.io/todos
ロリポップ!マネージドクラウドのGoプロジェクトに、たった2コマンドでデプロイ可能です。
- ロリポップ!マネージドクラウドで新規Goプロジェクトを作成します。
- SSH公開鍵の設定を済ませてください( ヘルプ )。
- Windowsの環境ヘルプはこちら
作成したGoプロジェクトのプロジェクト画面に表示されている SSHコマンド
でログインできることを確認してください。
以下が表示されたらテストOKです。
Last login: Thu Nov 15 02:40:59 2018 from 10.1.12.1
__ __ ____ _ _ _
| \/ |/ ___| | | ___ | (_)_ __ ___ _ __
| |\/| | | | | / _ \| | | '_ \ / _ \| '_ \
| | | | |___ _| |__| (_) | | | |_) | (_) | |_) |
|_| |_|\____(_)_____\___/|_|_| .__/ \___/| .__/
|_| |_|
******* Welcome to Lolipop! Managed Cloud *******
プロジェクト画面に表示されている各情報をもとにMakefileを修正します(make
実行時に渡す形でも構いません)
マネージドクラウド | Makefile |
---|---|
SSH/SFTP ホスト名 | SSH_HOST ?= [ここに記載] |
SSH/SFTP ポート | SSH_PORT ?= [ここに記載] |
SSH/SFTP ユーザー名 | SSH_USER ?= [ここに記載] |
データベース データベース名 | DB_NAME ?= [ここに記載] |
データベース ユーザー名 | DB_USER ?= [ここに記載] |
データベース パスワード | DB_PASS ?= [ここに記載] |
データベース データベースのホスト名 | DB_HOST ?= [ここに記載] |
- データベースの初期化
- バックエンドAPIサーバをデプロイ
- 起動コマンドの設定(マネージドクラウドのダッシュボード)
で完了します。
$ make initdb
$ make deploy
起動コマンドを /var/app/current/server
に設定します
プロジェクトURLにアクセスして画面が表示されれば成功です。
https://todobackend.com/client/index.html?[プロジェクトURL]/todos
にアクセスして動作を確認できます。
(ex. https://todobackend.com/client/index.html?https://todo-backend-golang-mc.lolipop.io/todos )
あるいは、https://todobackend.com/client/に [プロジェクトURL]/todos
を入力しても良いです
コマンドラインから
$ export PROJECT_DOMAIN="プロジェクトURL"
一覧を表示
$ curl https://$PROJECT_DOMAIN/todos
[{"title":"マネージドクラウドに登録する","completed":false,"order":1,"url":"https://polished-miyakonojo-8226.lolipop.io/todos/1"},{"title":"マネージドクラウドでGoアプリケーションをデプロイする","completed":false,"order":2,"url":"https://polished-miyakonojo-8226.lolipop.io/todos/2"}]
作成
$ curl -X POST -d '{"title":"curlから登録してみる","completed":false, "order":3}}' https://$PROJECT_DOMAIN/todos
{"title":"curlから登録してみる","completed":false,"order":3,"url":"https://polished-miyakonojo-8226.lolipop.io/todos/3"}
更新
$ curl -X PATCH -d '{"completed":true}' https://$PROJECT_DOMAIN/todos/3
{"title":"curlから登録してみる","completed":true,"order":3,"url":"https://polished-miyakonojo-8226.lolipop.io/todos/3"}
削除
$ curl -X DELETE https://$PROJECT_DOMAIN/todos/3
$ curl https://$PROJECT_DOMAIN/todos
[{"title":"マネージドクラウドに登録する","completed":false,"order":1,"url":"https://polished-miyakonojo-8226.lolipop.io/todos/1"},{"title":"マネージドクラウドでGoアプリケーションをデプロイする","completed":false,"order":2,"url":"https://polished-miyakonojo-8226.lolipop.io/todos/2"}]
Dockerがあれば、ローカルでの開発環境を簡単に用意できます
まず、テンポラリなMySQLサーバを起動します。起動と同時にデータベースとテーブルが作成されます。
$ make dev-start
APIサーバをビルドして起動します
$ make server
開発が終了したらMySQLサーバを消します
$ make dev-stop
$ make build
マネージドクラウドはWebコンテナのSTDOUTとSTDERRを/var/log/container/*/haconiwa.out
/var/log/container/*/haconiwa.err
に保存しています。
以下のコマンドでそれぞれのログを時系列にローカルのSTDOUTに表示します
$ make logs-out
$ make logs-err
initdb.sql
- データベースのスキーマ定義と、初期のデータ
Makefile
- ビルドやデプロイの手続きをまとめたMakefile. 使い方は上記READMEを参照のこと
main.go
- プログラムの開始地点(
main()
関数)と、サーバ起動・ルーティングなどの主な処理。
- プログラムの開始地点(
todo.go
- todosテーブルのビジネスロジックを記述したコード (所謂モデルというものです)
go.mod
- vgoというパッケージ管理ツールの生成するファイル. (ruyにおけるGemfile、npmにおけるpackage.jsonみたいなもの)
go.sum
- こちらもvgoが生成するファイル
templates/
html/template
パッケージで利用するテンプレートファイル
assets/
- cssや画像ファイルなど. ファイル配信のサンプルで利用
docs/
- Windowsの方向けの設定方法です!