アカウント一覧取得_API


概要

{success} KIZUNAを運営する本システムにログインできるアカウントの一覧取得APIです。


エンドポイント

メソッド URI Headers
GET /api/account/list/{page}/{per_page}?search=〇〇 Default

リクエストパラメーター

/api/organization/list/0/50?search=〇〇

ROUTEパラメータ

パラメーター名 内容 特記
page int 現在のページ(何回実行したか何P目かを表す) 以降加算されていく
per_page int リクエスト件数(50なら50件返却)

{primary} pageが0の時は=1ページ目 / 1の時は2ページ目と同義となります。

GETパラメータ

パラメーター名 内容 特記
search string 名前/ログインID 空白区切り でLIKE検索 絞り込み検索時のみ付加されます。

{primary} ?search=は絞り込み検索時のみ付加されます。


レスポンス

成功時
パラメーター名 内容 特記
id int アカウントのID
name string アカウントの名称
login_id string アカウントのログインID
created_at string アカウント作成日(/区切り)
{
  "result"   : true,
  "errors"   : "",
  "data"     : [
    {
      'id'        : 1,
      'name'      : 'テストアカウント'
      'login_id'  : 'admin@gmail.com'
      'created_at': '2020/03/05'
    },
    {
      'id'        : 10,
      'name'      : 'テストアカウント'
      'login_id'  : 'admin@cmps.jp'
      'created_at': '2020/03/05'
    },
  ],
}

{primary} 何もなければ空配列で返却します。

失敗時

ステータスコード:200

パラメーター名 内容 特記
result boolean リクエスト結果
error List 配列
{
  "result"   : false,
  "errors"   : {
    'error'       : ['失敗しました'],
  },
  "data"     : "",
}

データ取得

データ取得SQL

  • $request->get('search')が複数あった場合、[$keyword1, $keyword2...]と、配列にし、検索対象カラムでループします。
  • デリミタ(区切り文字)は半角スペースと全角スペースを対象とします。
SELECT
    *
FROM
    `cmps_accounts`
WHERE

    `cmps_accounts`.`name` LIKE "%{$keyword1}}%"
OR  `cmps_accounts`.`login_id` LIKE "%{$keyword1}%"

OR  `cmps_accounts`.`name` LIKE "%{$keyword2}}%"
OR  `cmps_accounts`.`login_id` LIKE "%{$keyword2}%"

OR   ...

AND `cmps_accounts`.`deleted_at` IS NULL
ORDER BY
    `cmps_accounts`.`id` DESC
LIMIT $request->route('per_page') OFFSET $request->route('page')

LIKE検索について

例)「石倉」で検索

WHERE
    cmps_accounts.login_id LIKE "%石倉%"
OR  cmps_accounts.name LIKE "%石倉%"

例)「石倉 洋子」で検索

WHERE
    cmps_accounts.login_id LIKE "%石倉%"
OR  cmps_accounts.name LIKE "%石倉%"
OR  cmps_accounts.login_id LIKE "%洋子%"
OR  cmps_accounts.name LIKE "%洋子%"

{warning} name, login_idのLIKE検索は、GETパラメータsearchが渡されたときのみ必要になります。

RUN