「自分でWebサービスを作ってみたい!」と思って作り方を検索しても、あなたが知りたい情報は見つかりません。
なぜなら、「Webサービスの作り方」で検索すると、情報の範囲が広すぎるからです。
- Webサービスを作るための考え方
- 基本的な作業の流れ
- 注意点
これらを知りたいのであれば問題ありませんが、具体的な作り方はわかりませんよね。そこで、この記事ではWebサービスを作る手順について、初心者にもわかりやすく解説していきます。
Webサービスがどのような仕組みで作られているのか知りたい方は、ぜひ参考にしてください。ただ、プログラミングの知識が全くない方には少し難しいため、先に⬇︎の記事で言語の種類を確認することをおすすめします。
WebサイトとWebサービスの違い
それでは、はじめにWebサイトとWebサービスの違いについて簡単に解説します。まずは、それぞれの特徴について表にまとめてみました。
種類 | Webサイト | Webサービス |
---|---|---|
代表的な例 | ホームページ | ECサイト・ポータルサイト 動画配信・SNS・メール |
画面の表示内容 | 誰が見ても同じ | ユーザーによって異なる |
プログラムが動く場所 | 端末のブラウザ | Webサーバー |
主な機能の例 | なし | ログイン ショッピングカート お気に入り |
上記の表から、Webサイトに何か「便利な機能」を加えると、Webサービスが出来上がります。Webサイトに便利な機能を加えるには、データベースとの連携が必要です。
便利な機能とデータベースの関係とは?
続いて、データベースを操作して便利な機能を作る方法について解説します。例えば、ログイン機能を利用する場合、ユーザーごとに情報を分けて表示しなければいけません。
このとき、Webサーバーでは下記の処理を実行します。
- ユーザーを判別する
- ユーザーに合わせて情報を選択する
- 選択した情報を表示する
みなさんも経験している通り、ログインするためにはIDとパスワードが必要です。このIDとパスワードはデータベースに保存されています。
ログインとは、「入力した内容と一致したユーザーを判別する仕組み」のことです。ユーザーが判別できれば、紐づいた情報を選択して画面に表示できます。
このように、さまざまな情報をデータベースに保存し、必要に応じた処理をすることで、たくさんの便利な機能が作られています。
データベースに保存する情報について
次に、データベースに保存する情報について、もう少し詳しく解説します。データベースには、主に「文字」か「数字」を種類別に分けて保存します。では、代表的な例を表でまとめておきます。
データ型 | 種類 | 使用例 |
---|---|---|
文字 | 名前 | ユーザー名を表示する |
メールアドレス | ログインに使う | |
パスワード | ||
テキスト | タイトルや本文を保存する | |
数字 | ID | 個別に管理するため |
日付 | 登録日・更新日を記録する | |
状態 | ON・OFFを切り替える (データを残したまま表示させない) |
データベースに保存したデータは、『編集・検索・削除』などが可能です。Webサービスを作るときは、実装したい機能に合わせてデータベースを考えた上で、組み合わせて設計します。
Webサービスの具体例
では、実際にWebサービスの作り方を見ていきましょう。初心者でも作りやすい簡単なWebサービスは、下記の通りです。
どれも、シンプルな機能に限定することで単純な仕組みにできるため、初心者向けの教材として多く使われています。
次に、それぞれのサービスの仕組みは、大きく3つの役割に分けられます。
役割の種類 | 主な内容 | 必要な言語の例 |
---|---|---|
データベース | データの保存・編集・検索・削除をする | SQL |
サーバー | ユーザーからのリクエストに合わせて 必要な処理をする | PHP・Ruby |
フロントエンド | 画面の表示を作る | HTML・CSS JavaScript |
このうち、Webサービスに必要な機能を作るには、データベースの設計が重要になります。なぜなら、データベースに保存されたデータを工夫して表示することで、Webサービスの機能が作られるからです。
文章ではわかりにくいので、簡単なWebサービスに使われているデータベースの具体例をご紹介します。
メモアプリのデータベース設計
例えば、簡単なメモアプリを作るとします。不特定多数の方が使う場合、ユーザーごとにデータを分けて管理しなければいけません。
この場合、データベースには2つのテーブル(表)が必要です。(詳細は省いた上で、最低限の内容で進めていきます)
ユーザーテーブル
種類 | 内容 |
---|---|
id | 個別に管理するため |
name | 名前 |
メールアドレス | |
password | パスワード |
created_at | 作成日時 |
updated_at | 更新日時 |
メモテーブル
種類 | 内容 |
---|---|
id | 個別に管理するため |
user_id | ユーザーと紐づけるため |
content | 本文 |
status | 状態を表示 |
created_at | 作成日時 |
updated_at | 更新日時 |
ユーザーテーブルには、ログイン機能に必要なユーザーに関するデータを保存します。メモテーブルには、メモの内容や登録したユーザーのIDなどを保存します。
さらに、ユーザーテーブルとメモテーブルを紐付けることで、ログインしたユーザーは特定のデータのみ扱えるように限定できます。ちなみに、ブログも同じような仕組みで作られています。
マッチングアプリのデータベース設計
マッチングアプリの場合は、ユーザーがお互いに「いいね!」をした場合にお知らせする機能が必要です。そのため、データベースには下記の2つのテーブルを用意します。
ユーザーテーブル
種類 | 内容 |
---|---|
id | 個別に管理するため |
name | 名前 |
メールアドレス | |
password | パスワード |
created_at | 作成日時 |
updated_at | 更新日時 |
マッチングテーブル
種類 | 内容 |
---|---|
from_user | 誰から(ユーザーID) |
to_user | 誰に対して(ユーザーID) |
like | いいね!の結果 1=いいね! 0=なし |
ユーザーテーブルのIDをマッチングテーブルと紐付けることで、「いいね!」した相手を判別します。お互いに「いいね!」しているなら、それぞれのユーザーの画面に表示させます。
「いいね!」の使い方を工夫すれば、仕事やお店のマッチングサービスにも対応できますね。また、メモの機能とマッチングアプリの「いいね!」機能を合わせると、Twitterのようなサービスも作れそうです。
実装したい機能に合わせてデータベースを作る
作りたいWebサービスに必要な機能を実装するには、データベースの設計が重要になります。データを表示する場所や内容を変えることで、さまざまな機能を作ることができるからです。
また、Webサービスには他にも2つの役割がありましたね。
役割の種類 | 主な内容 | 必要な言語の例 |
---|---|---|
データベース | データの保存・編集・検索・削除をする | SQL |
サーバー | ユーザーからのリクエストに合わせて 必要な処理をする | PHP・Ruby |
フロントエンド | 画面の表示を作る | HTML・CSS JavaScript |
データベースの設計が済んだら、必要なページの種類やデザインを考えます。どのデータをどの場所にどのように表示するかで、実装できる機能は大きく変わります。
また、上記の表からわかる通り、サーバーで動くプログラムと、Webページの見た目を作るプログラムの言語は異なります。つまり、複数の言語を使ってWebサービスを作るということです。
とはいえ、必要な言語を全て完璧に覚える必要はありません。なぜなら、Webサービスを作るために必要な学習は、それぞれの言語の一部に限られるからです。
各プログラミング言語をしっかり学ぶためには、長い時間が必要です。すると、学習量が多くなり挫折しやすくなります。そのため、最初は基礎知識のみ学習し、必要になった時点で調べながら進めていく方法がおすすめです。
Webサービスに興味があるなら、まずは「自分で作ること」を目標にしましょう。そのあとに、不足している知識やスキルを学んでも遅くはありません。
と言われても、初心者がいきなりWebサービスを作るのは難しいですよね。そこで、最短ルートでWebサービスを作る学習内容について⬇︎の記事で解説しているので、ぜひ参考にしてください。
Webサービスを作れるようになれば、自分のアイデアを「形」にすることも可能になります。ぜひ、日常生活の不満を解決できる便利なサービスを作ってください。