バックエンドサービスの仕組み!荷物の配送に似ています!

Silicon Valley Super Ware

2020年7月13日


バックエンドサービスの仕組み!荷物の配送に似ています!

今回作るバックエンドサービスには「express」というモジュールを使っています。
先週はお試しに簡単な機能を実装しましたが、今日はその動きについて簡単に解説します。

簡単に言うと「リクエスト」を受け付けて、その処理をするという事です。

そのリクエストをやる事毎に別々のURLで受け付けるという感じです。
商店街に行くとお店が沢山あって、靴を買うときは靴屋さんに、 食事をする時はレストランにという感じで行く場所を分けますよね? URLは「お店」に近い概念です。

Webサービスの基本!

Webサービスの場合、インターネット上にサービスを提供するホスト(サーバー)が必要です。 このホストが、リクエストを受け付けてその処理をするわけです。
Webサーバー自身があるいみバックエンドサービスです。

通常のWebページでは、リクエストは「html」ファイルの中身をください!です

ホストは要求されたページのHTMLファイルの中身をブラウザーに送るというわけです。

今回のバックエンドサービスは、HTMLファイルの中身の代わりに要求された情報を
送り返したり、送られてきた情報を処理するという事になります。

Expressがやっている事は、利用者が指定したURLとHTTPのメソッドを読み取って 処理をする事です。この処理を「ルーティング」と言っています。
先週の例では「サーバーのURLのあとに"hello"」と指定されたら、 予め設定されたHTMLを返すというのがサービス内容です。
先週の例ではとてもシンプルな処理でしたが、今月のテーマは もう少し複雑で、リクエストに添付されたメッセージを SendGridのサービスに送るという処理になります。

URLは窓口!

つまり、URLで処理する内容を分けています。いわば「窓口」のようなものです。
窓口で注文を受け付けて、処理に回すというのがバックエンドの処理の流れです。 Expressはその窓口での注文を受けるためのフレームワークという事です。
この窓口の部分は、先週作った「Hello World!」でも、今月のテーマのメッセージの 送信でも変わりません。バックエンドのプログラム自体は同じような構成で作れます。

注文を受け付けて、処理に回わす。
処理が終わったらその結果を報告する

これだけです。つまり、バックエンドのプログラム自体は先週の「Hello World! 」と同程度で作れるという事です。違いは、REST APIのリクエストを送るだけです。

実はフロントエンドの仕事が中心!

このWebサービスはフロントエンドが主役的な役割を担います。
「ユーザーが送りたいメッセージを作る」という仕事です。

中身は、4月・5月で作ったお問合せフォームと同じような内容です。
違いは、作るメッセージをSendGridのAPIに近い形で作るという点です。

そうする事で、バックエンドはフロントが作成したメッセージのオブジェクトを 「転送」するだけにする事ができます。
バックエンドをシンプルにつくるには、わざわざバックエンドでメッセージを作り直す ことをしないで済むようにすれば良いというのは誰でも納得されると思います。

荷物の配送に似ています。

もう少し分かり易くするために、例として荷物を送る事を考えてみます。
フロントエンドは、利用者の行動です。荷物を送る場合、荷物を配送業者 「郵便局」とか「宅急便」などに持っていきますよね? バックエンドが郵便局や宅急便です。受け取った荷物を配送します。
先ほどの話は、利用者がどんな形で荷物を配送業者に渡すかです。 送る荷物の中身だけを持ち込んだ場合、配送業者は箱詰めして宛先をつける 作業が必要ですよね?利用者には便利かもしれませんが、受付で待たされたり 余分にお金を払う必要があったりするのが普通です。
一方で、利用者が箱に詰めてラベルを張っておけば、配送業者は受け取ったら そのまま発送できます。 待ち時間も短く、コストも抑えられます。
今回のメッセージの送信も同じような事が言えます。 フロントエンドですぐに送れる形のメッセージを作ってしまえば、 バックエンドではそのまま希望する送り先に転送するだけですみます。 しかし、すぐに送れない形の場合は送れる形に処理して送る必要があります。
シリコンバレースーパーウエアでは、バックエンドを含めた本格的なWebサービスを短期間で 作れるようになる講座を提供しています。 単純に、Webサービスを作るだけではなく、どのように作って、どのようにビジネスにつなげて 行くかを提供します。また、フリーランスの方だけではなく、就職を考えている方にも 「実践力」を養うことで「即戦力」のエンジニアとしてのスキルを身に着ける事ができます!

興味のある方は今すぐお問合せください!



またよろしければ、ニュースレターの登録をお願いします!大体週一回お届けしています。ブログよりは一歩踏み込んだもっと濃い内容を発信しています。


Copyright(c) 2020 by Silicon Valley Super Ware, all rights reserved.

コメント

このブログの人気の投稿

ユーザーインターフェースの設計

足し算以外もできるようにする

改良版足し算プログラム