提供開發者可以串接多種功能的 API,接收特定 JSON 格式的 request,並回傳特定 JSON 格式的 response
詳細功能說明可參考 API 文件
- 使用者註冊功能 API
- 使用者登入功能 API
- 修改使用者本身的資訊 API
- 特定使用者資訊 API
- 特定使用者發過的推文 API
- 特定使用者發過的回覆 API
- 特定使用者喜歡的推文 API
- 特定使用者跟隨中的人 API
- 特定使用者的跟隨者 API
- 跟隨者數量前 10 的推薦跟隨名單 API
- 特定推文 API
- 特定推文的全部回覆 API
- 全部推文 API
- 新增推文 API
- 新增特定推文的回覆 API
- 跟隨特定使用者 API
- 取消跟隨特定使用者 API
- 喜歡特定推文 API
- 取消特定喜歡的推文 API
- 管理者登入 API (僅供管理者使用)
- 全部推文 API (僅供管理者使用)
- 刪除特定推文 API (僅供管理者使用)
- 全部使用者 API (僅供管理者使用)
-
請先確認有安裝 Node.js 、 npm 、 MySQL 與 MySQL Workbench
-
開啟終端機,到欲存放專案的路徑下,將專案 clone 到本地,輸入:
git clone https://github.com/realyutou/twitter-api-2020.git
-
安裝相關套件,輸入:
npm install
-
安裝 nodemon,輸入:
npm i -g nodemon
-
新增 .env 檔案,設定環境變數,詳細內容可參考 .env.example
-
開啟 MySQL Workbench,建立資料庫,輸入:
create database ac_twitter_workspace;
-
開啟終端機,建立資料表,輸入:
npx sequelize db:migrate
-
載入種子資料,輸入:
npm run seed
-
執行專案,輸入:
npm run dev
-
在終端機看見以下訊息代表順利執行
Example app listening on port 3000! -
終止伺服器
ctrl + c
-
若要開放給其他網域的開發者串接 API,可部署至雲端伺服器,以下操作以部署到 Heroku 為例:
-
開啟終端機,登入 Heroku,輸入:
heroku login
-
瀏覽器跳出登入頁面,登入 Heroku
-
返回終端機,建立 Heroku 專案,輸入:
heroku create
-
開啟 Heroku 專案設定頁面,新增連線遠端資料庫與 JWT_SECRET 的環境變數
-
修改 config.json 檔案:
"production": { "use_env_variable": "<連線遠端資料庫的環境變數>" }
-
將本地專案推上 Heroku,輸入:
git push heroku <主要分支名稱>
-
啟動 Heroku 上的專案,輸入:
heroku ps:scale web=1 -a <Heroku 專案名稱>
-
開啟應用程式,利用網址即可對其他網域提供 API 接口
前台:
- account: user1
- email: user1@example.com
- password: 12345678
後台:
- account: root
- email: root@example.com
- password: 12345678
- Node.js - 執行環境
- Express - Web 應用程式後端框架
- CORS - 跨網域發送請求套件
- Passport - 驗證機制套件
- JSON Web Token - 發送憑證套件
- Sequelize - 非同步 ORM 框架
- Dotenv - 設定環境變數套件
- ESLint - 定義程式碼風格套件