Phoenix × Elixir × MariaDB × Dockerでjsonを返すAPIを開発する (1日目 : Docker環境構築編)
PhoenixとElixirでAPIを開発したい。
Macのローカルに開発環境を立てる。
boot2dockerを落とす
http://boot2docker.io/
1. パッケージファイルが落ちて来たら流れに沿ってインストール
2. boot2dockerのアイコンをクリックして実行
パラメータ設定
$(boot2docker shellinit)
Dockerプロセス確認
docker ps
Docker Hubのアカウントを作成する
Docker Imageをpullする
docker pull centos
※centosは適当です。ただしOfficial
Docker Imageを確認
docker images
Dockerコンテナ作成
docker run --privileged -d -i -t --name=${Container_Name} -v ${Host_Path}:${Container_Path} -p ${Host_Port}:${Container_Port} ${Image_Id} /sbin/init
例1) : docker run --privileged -d -i -t --name=api -v $HOME/work/docker_related/workspace:/var/www -p 8080:80 6ffc02088cb8 /sbin/init
例2) : docker run --privileged -d -i -t -e "HOSTNAME=api" -e "TZ=Asia/Tokyo" --name=api --link=mariadbmaster:mariadbmaster -v $HOME/work/docker_related/workspace:/var/www -p 8080:80 6ffc02088cb8 /sbin/init
コンテナ一覧を確認
docker ps -a
ミスった時用コンテナ破棄コマンド
docker rm `docker ps -a -q`
bashでログイン
docker exec -it api bash
今日はここまで
こちら ( Phoenix × ElixirでAPIを開発する (2日目 : 開発環境構築編) - はい!今やってます! ) に続きます。
【Apiary】WEBベースのAPIプロトタイピングツールを使ってRestAPI開発を効率化する
敬愛するサービスが僕がずっと温めてきたアイデアと同じ機能をリリースしました。 かなり未来のある機能だと思っていたのでショックですが、将来開発力で負けない為にスピードを出せるように技術の方磨いていきたいと思います。
以前RestのサービスをJavaで書いてHerokuにあげて、MySQLにデータ突っ込んでという方法で書いていたのですが、 フロントの要望が固まらぬままAPIを書いていても楽しくないというか、2,3個書いたところで完全に飽きてしまったので、 RestのAPIプロトタイピングツールを調べて導入してみたいと思います。 認証周りまで作り込めるのは期待せずに、Deleteできればラッキーぐらいの気持ちで幾つかツールを探してみました。
API Blueprint - API Documentation with powerful tooling
ちょっとコンセプトが理解できていないのですが、
APIのドキュメントまわりやモデリング言語、WEBプラットフォームの提供等多岐にわたるようです。
中でも特に心奪われたのがApiaryというサービス apiary.io WEBベースでドキュメント化、プロトタイピングが出来る事、 プロトタイピングしたAPIをそのままhttpで呼び出せるのがいい感じです。
これがエディター
これがドキュメンテーション
これがインスペクター ※左上のURLにパスを繋いでを適当にリクエスト投げればコールできます。
jsから呼ぶだけのAPIの為だけにローカルでWebサーバ立ち上げたくないな〜と思っていた矢先だったのでかなり心惹かれました。 期待以上のものが見つかりました。
早速これで設計していきたいと思います。
その他ちらほらプロトタイピングのようなものを発見したので覚え書き程度に。
RAML - RESTful API modeling language
RamlはYamlベースのモデリングランゲージ。
0.8ですが、モデリングしたファイルを仕様書として共有できるのがいいですね。
Swagger | The World's Most Popular Framework for APIs.
Swaggerも似たような形ですが、
ツール周りが整備されているのがいいですね。
後次点で簡単なjsonplaceholder。 こちらはnpmで提供されています。 jsonplaceholder.typicode.com
Macのターミナルを乗り換える
日の目をみない記事の下書きが80を超えました。 このままゴミになってしまうのはもったいないので、しょぼいのも出していきたいと思います。
--
MacBookProがメイン端末となり早3週間、 サーバオペレーションの拙さが笑えない感じになってきたので、 デフォルトのターミナルを変えたいと思います。 特にやりたいのはPoderosaでやってたキーブロードキャストとホストをクラスタリングしてオートログイン
キーブロードキャストができるってのでひとまずiTerm2を選択 teohm.com
やる時はこんな感じ
ホストのクラスタリングはどんな感じかなぁと調べたらAppleScriptで書けば行けそうですね〜
[BKRAFT/Articles] - Automating iTerm2 with Applescript