シングルページアプリケーションは下図のような構成をとることが多い。
この構成の場合は、各サーバーの役割は、こうなる。
Webサーバー
静的なファイル置き場
DBサーバー
データを保持する。
本稿では、各サーバー間をデータがどのようにながれていくのかを図で説明する。
画面の挙動とデータの流れ
1.ページへのアクセス
2.WebAPIの呼び出し
3.結果の返却と表示
ソースコードイメージ
APIサーバー
package main import ( "net/http" "github.com/gin-gonic/gin" ) func main() { r := gin.New() r.GET("/book", func(c *gin.Context) { //パラメータの確認 (2-②の処理) //データベースへのクエリ発行と結果取得 (2-③、3-①の処理) //クエリ結果をjsonデータへ加工してレスポンス作成 (3-②の処理) }) r.Run() }
クライアント(main.js)
function onSearchButtonClicked(keyword) { const response = await fetch("https://aaa.com/book?n=" + keyword);(2-①、3-③の処理) //結果を加工して画面表示 (3-③の処理) }