Qiitaのコピーアプリ「Qiitan」のAPI。
記事情報関連のAPIが利用できる。 定期的にキャッシュを保管して、API呼び出し時にキャッシュを返すように。キャッシュ保管のためにAerospikeを使用。
まず、以下の前提条件が満たされていることを確認すること。
- プラットフォームに合わせたDockerがインストール済み
- docker-compose がインストール済み
その後、以下のように実行。
$ git clone [email protected]:Matsushin/qiitan-api.git
$ cd qiitan-api
$ docker-compose build
本リポジトリでは、「Qiitan」リポジトリで作成されるDBを利用している。 APIで結果を返すには事前にデータベースの作成とデータ投入が必要になります。
以下のように実行。
$ docker-compose up
その後、 docker ps
コマンドを実行し、api/mysql/nginx/aerospikeコンテナが起動していることを確認する。
APIへのアクセスは以下のように行う。
$ curl localhost:18080
$ curl localhost:18080/pvt/health # ヘルスチェック
$ curl localhost:18080/v1/articles # 記事一覧
$ curl localhost:18080/v1/ranking/like # いいね記事ランキング
$ curl localhost:18080/v1/ranking/stock # ストック記事ランキング
Go APIはfreshを使ってライブリロードするようになっている。
また、ホストの qiitan-api
ディレクトリはコンテナにマウントされているため、
ホスト側でGoのコードを編集すると即APIの動作に反映される。
MySQLコンテナにログインしたい場合は以下のように実行する。
$ docker exec -it qiitan-api_mysql_1 bash
# mysql -uroot qiitan # パスワードなし
- ECSへのデプロイ(
deploy.sh
)は、go-ecs-ecr を使用してCircleCIから実行する。