Springdoc-openapiでAPIドキュメントを自動生成する
Springdoc-openapiを使ってSpring Bootで実装したアプリケーションのAPI仕様書を実装コードから自動生成する。
SpringのRestTemplateでプラス記号をエンコードする
SpringのRestTemplateでは、プラス記号(+)がエンコードされない。そのため、クエリパラメータにプラス記号が含まれているような外部APIに対してのリクエストで受け取る際に問題が生じてしまう。解決方法として、プラス記号は手動でエンコード(置換)やれば良い。
macOSのzshの設定を個人的に使いやすいようにカスタマイズした
macOSのターミナルを快適に使うためにzshの設定周りを試行錯誤した。ただし、派手なターミナルはあまり好みではないのでシンプルに表示できるようにしてみた。
MongoDBを導入する
データベースにはRDBMSとRDBMS以外のNoSQLがあるが、NoSQLは今まで使ったことがなかったので触れてみる。そこで、NoSQLデータベースの中でも比較的人気なMongoDBを導入して試してみた。
Next.jsでAPIリクエストをproxyする
Next.jsで外部のAPIに対して非同期でリクエストをしたところCORSエラーが発生した。異なるオリジン間での通信を許可するにはサーバ側にリソース共有を許可する設定を導入する手法が一般的だが、今回はクライアント側だけで対応してみた。そこで、http-proxy-middlewareというモジュールを使ってHTTPリクエストをプロキシすることでエラー回避をしてみた。
Next.jsのカスタムサーバとしてExpressを利用する
Next.jsのアプリケーションよりも上位のレイヤに独自処理を挟みたかっため、Next.jsのカスタムサーバとしてExpressを導入して機能の拡張を行った。
markedでマークダウンをHTMLに変換して表示させる
markedというライブラリを使ってマークダウン記法の文字列をHTMLに変換して表示させてみた。また、コードブロック内のコードはハイライト表示にさせたかったのでhighlightjsというライブラリも併用して使ってみた。