Skip to content

version1-workspace/ws-0700-express-crud

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 

Repository files navigation

Express-crud

概要

こちらのリポジトリではExpressでブログ投稿APIを作成することで、認証・認可とユーザ作成、ブログのCRUD APIを実装していきます。

デモ

デモは Heroku に上がっています。

demo: Demo

  1. 下記エンドポイントにPOSTリクエストを行いユーザを作成

url: https://express-crud-sample-728c698bcec2.herokuapp.com/auth/signup

{
  "user":  {
    "loginId": "[login ID]",
    "name": "[name]",
    "iconUrl": "[icon url]",
    "password": "[password]"
  }
}
  1. 下記エンドポイントで1.の認証情報を使って認証。 url: https://express-crud-sample-728c698bcec2.herokuapp.com/auth/login
{
    "loginId": "[login ID]",
    "password": "[password]"
}
  1. 2で受け取ったjwtをHttpヘッダに含めてその他のエンドポイントにリクエスト → 下記仕様書にあるエンドポイントでリクエストを試せます。

※しばらく誰もアクセスしていないとサーバが休眠状態になってしまうので、最初のアクセスではしばらく待ちが発生するかもしれません

課題で身に着けること

  • データベースの基本
  • TypeScriptの基本
  • MVC(Model View Controller)
  • SQLでのCRUD
  • ORMの基礎
  • ORMでのCRUD
  • マイグレーションとシード
  • API(Passport)を使用した認証・認可
  • Expressを利用したWeb APIの実装

課題の進め方

0. 実装に必要な概念を学ぶ

Docker

コンテナ仮想化技術をメインでは学びませんがMySQLを使用する際に使うので概要だけでもさらうようにしておいてください。

Docker ドキュメント(公式 Dockerとは何かを入門者向けに解説!基本コマンドも

データベース(MySQL)の基本

これまでデータベースを触ったことがない方は下記チュートリアルを終わらせてから課題に入ってください。↓↓↓↓↓

ORM(オブジェクトリレーショナルマッッピング)

MVCとは

Webアプリケーションフレームワーク

WebAPIでの認証・認可

TypeScript

1. 課題用リポジトリの作成

フォークでなく個人のアカウントにリポジトリ を作成してください。 課題はdevelopブランチで開発を進め、最後完成した後にmasterへのプルリクエストを作成してコードレビューをうけるようにしてください。

2. 実装

下記順番に実装を行うようお願いします。

※MySQLをさわったことのない方はチュートリアルをすませてから課題にはいってください。

ステップ1 Express+TypeScript環境の構築

チェックリスト
  • typescriptのインストール
  • expressのインストール
  • expressサーバが起動すること
  • ルートのエンドポイントが {"message":"ok"} のjsonを返却すること

ステップ2 Sequerizeの導入

テーブル定義書 を元にモデルの作成

チェックリスト
  • DB接続の確認
  • 全モデルの作成
  • マイグレーションの作成
  • シードの作成(Categoriesテーブルだけ)

ステップ3 認証/認可の実装

/auth 配下のエンドポイントの実装

API仕様書

チェックリスト
  • /auth/signupでユーザ登録ができること
  • /auth/loginでログインができること(jwtが返却されること)
  • /userでユーザ情報が取得できること

ステップ4 その他のエンドポイントの実装

仕様書にあるその他のエンドポイントの実装

API仕様書

  • 仕様書通りに実装されていること

3. HerokuにAPIをデプロイ

HerokuにAPIをデプロイして公開します。 手順はWikiを参照してください。

Herokuへのデプロイ手順

補足事項

データベースのGUIツールについて

データベースを使うにはチュートリアルはコマンドライン上でやって欲しいですが、普段はGUIから操作することが多いです。 インストールしておくことを強くおすすめします。

HTTPクライアントツールについて

APIをテストするにあたってHTTPリクエストを送る必要があります。curlのような温かみのあるツールを使っても良いですが、 今時のChromeからリクエストを送れるツールを使うのも良いかと思います。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published