前提のお話

元の情報はこちらより

最初に基本的な使い方

const params = {
  headers: {
    "Content-Type": "application/json",
    Authorization: await Auth.currentSession().then(session => session.getSession().getJwtToken())
  }
}
API.get("AdminQueries", "/listUsers", params)

https://xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com/dev/listUsersという感じのAPIを叩きに行ってくれるのでCognitoに登録されているユーザー一覧を取得できる

limitの指定

このAPIの場合はデフォのlimitは25人でパラメータに

const params = {
  queryStringParameters: {
    limit: 10
  },
  headers: {〜}
}

とかってしてやれば10人取れる
この情報はamplify/backend/functions/AdminQueries1234abcd/src/app.js/listUsersに書いてある

ページネーション

const {NextToken, Users} = await API.get(〜)

でgraphqlのAPIみたいに情報が取れてパラメータに

const params = {
  queryStringParameters: {
    token: NextToken
    limit: 10
  },
  headers: {〜}
}

で2ページ目のユーザー情報が取得できる

postの送信の仕方

const params = {
  body: {
    username: email
  },
  headers: {〜}
}
API.post("AdminQueries", "/disableUser", params)

という具合でqueryStringParametersとは違いこっちはbodyを使う
expressとかに慣れてれば意味は分かるはず…

その他

  • 内部的にはaws-sdkを使ってこちらと同じ事をしている
  • headersが無いとcorsエラー吐くので注意🤮

次回予告

自動生成されるAPIの使い方について書くよ