サーバーサイドの設計をしよう

- 広告 -

サーバーの設計をする前に知っておくこと

前回のブログをアップしてから2ヶ月弱、何をしていたかというと、サーバーのお勉強をしていました。
なんせ、最近はアプリの開発しかしてないのでサーバーサイドの設計については詳しくないのですよ。
ただ、アプリとの連携でAPI設計なんかはしていたし、サーバーの担当者と話はしていたのでなんとなくはわかるんです。ただ、自分でやることは今まであまりなかったのでちょっと困ってました。

サーバーをAzureにすると決めたのは良いですが、そもそもWebアプリ開発とか初めてだし、Pythonとかやったこともないし、そもそもクラウドサービスって機能が複雑!
てな感じで初めてみたものの、Azureの情報があまり多くなくて右往左往。しかも、C#じゃなくPythonを使おうとしていたので、余計に情報が少なかったのも問題でした。
そんな苦労の末、やっとAzure上でWebアプリを動かすことができました!その苦労の内容についてはQiitaに記載しています。
AzureのApp ServiceにDjango@Python3.6.4で作ったWebアプリをデプロイする

Python自体も初めてで悪戦苦闘だったのですが、以前からPythonに興味があったのとWeb用のフレームワークがあるということで今回採用してみました。
PythonのWebフレームワークは色々あるのですが、一番メジャーなのはDjangoでしょうか。あとは最近人気のFlaskやBottleなどもあります。
今回は無難(?)にDjangoを使ってみました。
DBの接続がModelを通してやるので、SQLを書かなくていいのが最大のメリットかもしれません。。。SQL苦手。。。
また、Webページを作るのにTemplateが使えるのも魅力です。どうやらBootstrapも使えるみたいなのですが、まだよくわかりません。今回は特に必要なさそうなのであとで勉強します。

- 広告 -

サーバー設計をするよ

今回、試行錯誤している間に、webのアレコレを知ることができたので、いよいよサーバーの開発に取りかかります。
まずは全体の構成を考えてみます。なんとなーくわかるように図にしてみました。

アプリでデータを取得して来るためには、サーバーにデータがないといけません。サーバーにデータを登録するのにWebAppを使います。
そして、データはデータベース(DB)に登録されます。今回はデータの他に絵本の元画像があります。元画像はストレージに保存します。
アプリはAPIを通してDBからデータを取得します。データの型はJSONを使います。
画像はURLからダウンロードします。画像のURLはAPIのデータに入れておきます。
これで、今回作るアプリの登場人物は全てです。(のはず)

実際に作るときに必要になるのは、DB仕様、API仕様、画面仕様のあたりでしょうか。
アプリの画面仕様とAPI仕様は以前に作ってあったので、今回はWebの画面仕様とDB仕様を作りました。
前回作った仕様書に追記しています。

仕様書

やっぱり実際に触ってみないと設計はできないですね〜。今回は良い勉強になりました。
DB設計とかは奥が深すぎて、ちゃんとやろうとするともっと勉強が必要になりますが、最低限の知識で頑張ってみました。

なんとなく全体像が見えてきたので、ようやく実装に入りますよ!
はー。。。長い道のりでした。。。

- 広告 -