Category Archives

3 Articles

サーバーサイドDart Aqueductを推す!(IntelliJ IDEA編)

環境構築編でサーバがローカルで動いたので
実際にコードを書いていきます!

公式でもIntelliJ Ideaがおすすめされています。
まずはお試しで無料のCommunity Editionでやっていきます。
特にこちらで今の所困ることはないです。
ダウンロードはこちら

プロジェクトはすでに作成済みなのでOpenを選択します。
先程作ったプロジェクトを読み込みましょう

早速コードを!と行きたいところですがAqueductはIntelliJで触れる時
のテンプレートを用意してくれています。

こちらを参考にしてダウンロードしインポートしてください。
https://aqueduct.io/docs/intellij/
読み込まれたtemplateの各内容は別途説明します

File > Import Settings からダウンロードしたsetting.jarを読み込みます。
ダイアログが出るのでOKを。
一旦これで完了です。

はじめての起動だとDartプラグインが必要になります

install pluginsをクリックしてインストールしましょう。
完了するとIntelliJの再起動を求められるので素直に。OK

今度はDart SDKをダウンロードしろ!と言われるのですがこちらは
すでに入っているので別途設定します。

ターミナルで

brew info dart

とうつと

最後の行がSDKのパスになりますので
IntelliJ > Prefference Dartで検索してその他も設定していきます!

Apply > OKを押す。ここまで来るとbin/main.dartを右クリックするとRun ‘main.dart’ができるようになるので実行!

こうするとターミナルに

こんなふうに出るのでブラウザで再び

http://localhost:8888/example を叩きましょう。
無事表示されたら完了です!

右上の部分もアイコンが増えてデバッグで起動などできるようになりました。

サーバーサイドDart Aqueductを推す!(環境構築 とりあえず編)

Google I/O 2019でFlutter for Webなどが発表されて盛り上がっている中
一人でDartをもっと使いたい!と奮闘していました。

特に最近サーバーサイドのフレームワークがどの言語の何を触っても
・デフォルトで持ってる機能が中途半端
・追加で必要なパッケージ管理が面倒
・VS Codeでフォーマットすらできない
とかとかあっちを立てるとこっちが立たないみたいなものが多いなぁと不満が。

そんな時に見つけたのがサーバーサイドフレームワーク
「Aqueduct」です。
用意されたコマンドを数回叩くだけで
・ORM入ってる
・OpenAPI3対応している
・OAuth 2.0認証持ってる
・Test環境も整ってる
ビジネスロジックを書くまでの手間がとても少ないフレームワークです!
もちろん多種多様なDart用パッケージの恩恵も受けられます。

読み方は「アークァダクト」ぐらいの感じで意味は「水路」

さっそく環境構築をしていきます。
まずはDartとAqueductのコマンドを使えるように。

ブラウザで http://localhost:8888/example にアクセスして
以下のように表示されたらプロジェクト作成完了です!
次はIDEを設定していきましょう。

node.js(express + swagger) でRest API環境構築編

お仕事の関係でnode.jsのサーバーサイドをがっつり弄ることになったけど
頂いた開発環境が良くできすぎていて何が起こっているのかさっぱりだったので
最低限の環境を自分で作ってみます。

今回は CentOS に MySQL と Node.jsでRest APIのシンプルな環境。
MySQLのORMであるSequelizeは触ったことはあったけどmigrationもscaffoldもやったことがなかったので
そのあたりの環境構築のお話。

まずはサーバー構築から。コスパ重視でConohaVPSで動かしてます。

DBとかOS寄りの話は割愛。とりあえずこれ見れば全部できる。

ここから本番。

swaggerをinstallする。swagger自体には色々な機能がある。
Swaggerの概要をまとめてみた。 – Qiita

何はともあれインストール。

この時に使うフレームワークは何か?と聞かれるので「express」を選択。
他もそのうち触ってみたい。

プロジェクトを作成

プロジェクトを起動

一旦ここまででデフォルトのポート10010で http://x.x.x.x:10010/hello にアクセスするといい感じにAPIっぽくなってる。

MySQLのORM「Sequelize」をインストール
Sequelizeを使用してデータベースを操作するための基本的な情報 – Qiita

npmコマンドの –save オプションは package.jsonのdependenciesに追記するためのもの。
これ入れ忘れるとinstallしたのにsequelizeなんてないって言われるけど!!!ってなる。

Sequelizeのコマンドを使用するためにswquelize-cliが必要。

SequelizeのコマンドでDB接続周りの設定を初期化

すると必要なフォルダとconfigファイルが生まれる。
プロジェクト内のconfig/config.jsonを開くとjsonで環境ごとのDBの接続先が定義されているので
環境に合わせて変更する。

モデルを自動で生成してさらにいい感じにテーブルまで作る。(migration)
Node.jsのSequelizeでDBのmigrationを実行する – Qiita

するとuser.jsと言うのがmodels配下にできる。

カラムと型等定義されてるのがわかる。 Lengthの設定とかもしたいときは上のQiitaのページで教えてくれてるので手でいじる。

さらにmigration配下に
テーブル定義の書かれたものが出来上がる。
桁とかNull許容とかIndexとかここに追記していくことになる。

Migrationしてテーブルを作成する

migration配下のjsの分だけテーブルが作成される。

今回使うことはないけど念のためにscaffoldもやってみた。適当にテーブルを作っておく。

こちらは追加のモジュールが必要なのでインストール
Sequelize-Autoを使ってみた。 – Qiita

インストール。グローバルに

node.jsでMySQLを使えるようにする

新しいバージョンのMySQLとかMariaDBだとMySQL2も入れろって言われる可能性。

DBの中身を読み取っていい感じにモデルを生成

するとmodels配下にいい感じにjsが増えてる。

一旦ここまでで環境構築完了!