導入
前回のあらすじ・・・
ブログの作成用エディタ用意OK
作ったMDファイルの扱い方もOK
ディレクトリ構造は決めたもののgolang使ったことなくて無事死亡
DB作成や登録に関わること
運用として、DBの更新や作成、Seedだったりはブログを介したものではなく別で動かしたい。そのためディレクトリ構造は以下の様になっている。
D:
├─db
├─deploy
├─markdown
└─services
└─utils
DBへの作成更新はシステム(上記の場合service)とは独立して行いたいわけだ。
そんで、やりたいこととしてはPrismaみたいな感じを想定している。簡単に言えば、DBのテーブルを定義したファイルを用意し、それを基にスクリプト実行することで指定したDBにテーブルが作成される、みたいな感じ。プラスしてORMであることを条件とする。
ちなみに調べる中でGo Prismaなるものを見つけたが、廃止とのこと(2025/10現在)
探した結果、結局GORMで行う。理由はgolangによるDBアクセスに関してはGORMが使われることが多いように見られたため。
調査する中でAtlasというツールを確認、これも考えた。GORMはデータアクセスのみ行わせる感じで運用しようとも思った。
しかしAtlasとGORMによるDB構築のやり方が載っていたが、なんとWindowsだとできなかった(issueが上がってた)。
モデルを定義してGORMでテーブル作成してgo run❤️。
マークダウン解析と登録処理をしよう。servicesにマークダウン解析用のディレクトリを作って開始⭐️
マークダウン解析にはgoldmarkを使用。
タイトルとかタグとかはマークダウンのFront matterに記述してあるのでそこから取得、ゴニョゴニョしながら実装を終えた結果、とりあえずローカル環境のDBにデータを登録することができた。
データ取ってこなきゃ・・・❤️
DB登録できてうれし~って感じでいたら、取ってくる処理のこと忘れてた・・・。
現在の尾幌こま非公式ファンサイトではサーバーサイドからデータ取得とか行っていない。
Next側でAPI作ってるわけでもない。どう実装するかちょっと考えた。でも、まぁ、すでに方針自体は決めていた。APIサーバを建てよう、Golangで・・・。
そう、サーバーサイドはGolangで完結させる。Next側のフロントからAPI叩いてデータ取得を行い、結果を表示させる。
必要な最小処理としては以下を作成する。
- ブログ記事の一覧取得
- ブログ記事の詳細取得
さて、作るものは決まった。じゃぁどうやって作るか。Golangのサーバーサイド構築で気になるところとして、フレームワーク何を選択するか。まぁ正直何だってよかったのでGinを採用。なんか定番なんだってさ(ChatGPT)。
別のでもよかったが、Ginを採用した理由はなんかに繋がりそうだからだね。あと名前かっこいいし~現時点で好みとかでないし~・・・
んで決めたは良いがサーバーサイドGolangで作ったことがない、つまり・・・
俺達の戦いはこれからだ・・・!


