Edited at

ojichatをAPI化しました


ojichat-apiを開発しました

https://ojichat-api.tokyo


ojichatとは

https://github.com/greymd/ojichat


おじさんがLINEやメールで送ってきそうな文を生成するコマンド。


Go製のcliなんですが、かなり話題になりました。

https://togetter.com/li/1387648

しかしこのojichatはcliなので欲しい時すぐ使えなかったりします。

そこでAPI化しました。


ojichat-apiの実装

リポジトリはこちらになります。

https://github.com/konojunya/ojichat-api

今回はginというフレームワークを使いました。

https://github.com/gin-gonic/gin

めんどくさい処理は書きたくないので使い慣れてるものを採用しただけです。

今回は単純にquery stringをパースして

targetName := c.DefaultQuery("name", "")

emojiNumStr := c.DefaultQuery("e", "4")
punctuationLabelStr := c.DefaultQuery("p", "0")

それから ojichat/generator.Config を作成します。

config := generator.Config{

TargetName: targetName,
EmojiNum: emojiNum,
PunctiuationLebel: punctuationLabel,
}

この configojichat/generator.Start へ渡すだけでおじさん風のテキストを作成してくれます。


インフラ

ojichat-apiは https://ojichat-api.tokyo へホストしています。このサーバーは最近Google Cloud PlatformからでたCloud Runというdockerのコンテナをサーバーレスで動かしてくれるものに載せています。

https://cloud.google.com/run/?hl=ja

Cloud Runが色んな記事でも使い方が載せられていますが、結構簡単にデプロイまで出来るので趣味程度のAPIを開発するのであればかなりよいなと思いました。

料金もリクエスト数以外にサーバーのリソースによってかかりますが、ojichat-apiみたいな軽いものだと結構リクエストがきてもお小遣い程度で運用できそうです。

デプロイの方法などはその他の記事をご覧ください。

Cloud Runを最速で触ってみる

GCP版のFargate?Cloud Runを触ってみた

Cloud Runで動かすGo + Echo Framework

デプロイ自体をCDなどは行なっていませんがmakefileにまとめてあるのでみてみるとよいです。

https://github.com/konojunya/ojichat-api/blob/master/Makefile


Author

Twitter: @konojunya

GitHub: konojunya