API Overview - Non-Sense/mew Wiki

Original URL: https://github.com/Non-Sense/mew/wiki/API-Overview

APIのもろもろの説明

基礎

認証について

使い方

  1. ユーザ登録します: /api/signup
  2. ログインします: /api/login
  3. レスポンスヘッダーのX-AUTH-TOKENにトークンがセットされます
    • ログイン失敗時は200以外のHttpコードが返ります
    • トークンはCookieとかに突っ込んどくと都合がいいと思います
  4. リクエストヘッダのX-AUTH-TOKENにトークンをセットして、使いたいAPIを叩きます

トークンには有効期限がある(今の所5時間)ので、認証が必要なAPIを叩いて403が返ってきたらログインし直してください

フォーマット

ユーザ登録時のフォーマット

KEY 説明 正規表現
nameId ログイン用ID ^\w{5,15}$
name 表示名 ^[0-9a-zA-Zぁ-んァ-ヶ一-龠々ー]{1,50}$
password パスワード ^.{6,}

時刻表現

実装済みのAPI

/api

テスト用です
サーバが生きてるかどうかの確認ができるくらいの用途
常にHelloを返します
(そのうち消す)

[POST] /api/signup

POST JSON

KEY 説明
nameId ログイン用ID String
name 表示名 String
password パスワード String

RESPONSE JSON

RESPONSE CODE

CODE 説明
200 OK
400 フォーマットが不正
409 nameIdが重複している

[POST] /api/login

POST JSON

KEY 説明
nameId ログイン用ID String
password パスワード String

RESPONSE JSON

RESPONSE CODE

CODE 説明
200 OK
400 フォーマットが不正
401 IDかパスワードが違う

User

[GET] /api/user

GET PARAM

KEY 説明
nameid ログイン用ID String
id 内部ID Int

RESPONSE JSON

KEY 説明
userId 内部ID Int
nameId ログイン用ID String
name 表示名 String
createdAt 作成日時 時刻:String
updatedAt 更新日時 時刻:String

RESPONSE CODE

CODE 説明
200 OK
400 フォーマットが不正
404 一致するユーザが無い

[GET] /api/user/{nameid}

KEY 説明
nameid ログイン用ID String

RESPONSE JSON

KEY 説明
userId 内部ID Int
nameId ログイン用ID String
name 表示名 String
createdAt 作成日時 時刻:String
updatedAt 更新日時 時刻:String

RESPONSE CODE

CODE 説明
200 OK
400 フォーマットが不正
404 一致するユーザが無い

[GET] /api/user/find

GET PARAM

KEY 説明
name 検索する表示名 String

RESPONSE JSON

KEY 説明
userId 内部ID Int
nameId ログイン用ID String
name 表示名 String
createdAt 作成日時 時刻:String
updatedAt 更新日時 時刻:String

RESPONSE CODE

CODE 説明
200 OK
400 フォーマットが不正
404 ヒット件数=0

Book

[POST] /api/book

単語帳を新規登録します
同一タイトルは許容されます(変えたほうがいい?)

POST JSON

KEY 説明
titile タイトル String
public 公開する String

RESPONSE JSON

RESPONSE CODE

CODE 説明
200 OK
400 フォーマットが不正

[GET] /api/book

GETパラメータを指定しない場合、自ユーザの単語帳を取得します
GETパラメータで指定したユーザの単語帳を取得します
他ユーザを取得するとき、公開状態の単語帳のみ取得されます

GET PARAM

KEY 説明
userid ユーザID String

RESPONSE JSON

KEY 説明
bookId 内部ID Int
userId 作成者ID Int
title タイトル String
public 公開状態 Boolen
createdAt 作成日時 時刻:String
updatedAt 更新日時 時刻:String

RESPONSE CODE

CODE 説明
200 OK
400 フォーマットが不正
404 存在しない

[GET] /api/book/{id}

指定した内部IDの単語帳を取得します

KEY 説明
id 単語帳内部ID Int

RESPONSE JSON

KEY 説明
bookId 内部ID Int
userId 作成者ID Int
title タイトル String
public 公開状態 Boolen
createdAt 作成日時 時刻:String
updatedAt 更新日時 時刻:String

RESPONSE CODE

CODE 説明
200 OK
400 フォーマットが不正
404 存在しない

[GET] /api/book/find

単語帳をタイトルで検索します

GET PARAM

KEY 説明
title 検索するタイトル String

RESPONSE JSON

KEY 説明
bookId 内部ID Int
userId 作成者ID Int
title タイトル String
public 公開状態 Boolen
createdAt 作成日時 時刻:String
updatedAt 更新日時 時刻:String

RESPONSE CODE

CODE 説明
200 OK
400 フォーマットが不正
404 存在しない

/api/test

テスト用です
認証が必要なのでX-AUTH-TOKENがセットできているとか,トークンが生きているとか確認できます
認証できていればvalidを返します
できていなければ403
(そのうち消す)

/api/users [TEST]

テスト用です
ユーザ一覧を取得します(最大300件)
(そのうち消す)

/api/books [TEST]

テスト用です
公開状態関わらず単語帳一覧を取得します(最大300件)
(そのうち消す)