Skip to content
Qiitaコピーアプリ「qiitan」のAPI
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
cache
config
docker
handler
logger
model
mysql
response
settings
.gitignore
README.md
deploy.sh
docker-compose.yml
fresh.conf
main.go

README.md

qiitan-api

Qiitaのコピーアプリ「Qiitan」のAPI。

概要

記事情報関連のAPIが利用できる。 定期的にキャッシュを保管して、API呼び出し時にキャッシュを返すように。キャッシュ保管のためにAerospikeを使用。

環境構築

まず、以下の前提条件が満たされていることを確認すること。

  • プラットフォームに合わせたDockerがインストール済み
  • docker-compose がインストール済み

その後、以下のように実行。

$ git clone git@github.com: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

各API

$ curl localhost:18080/pvt/health # ヘルスチェック
$ curl localhost:18080/v1/articles # 記事一覧
$ curl localhost:18080/v1/ranking/like # いいね記事ランキング
$ curl localhost:18080/v1/ranking/stock # ストック記事ランキング

APIのライブリロードについて

Go APIはfreshを使ってライブリロードするようになっている。
また、ホストの qiitan-api ディレクトリはコンテナにマウントされているため、
ホスト側でGoのコードを編集すると即APIの動作に反映される。

MySQLコンテナへのログイン

MySQLコンテナにログインしたい場合は以下のように実行する。

$ docker exec -it qiitan-api_mysql_1 bash
# mysql -uroot qiitan # パスワードなし

その他

  • ECSへのデプロイ(deploy.sh)は、go-ecs-ecr を使用してCircleCIから実行する。
You can’t perform that action at this time.