スマレジ・デベロッパーズ・コミュニティはアーカイブされました。


これまでに投稿いただいた内容は引き続きご覧いただけます。

今後のお問い合わせはこちら

会員登録APIの各パラメータの制約について

カテゴリ: POS

はじめまして。POSの 会員登録API の仕様について、ご質問させてください。

REQUEST BODYの各パラメータそれぞれが、どの条件で でPOST可能かが知りたいです。

API定義を読んだところ、正規表現でバリデーションしているものは把握していますが、必須の場合にどうすべきかなどを読み解けず。

各パラメータに対し、以下のようなご回答がいただけると幸いです。

  • いつでも でPOST可能
  • 契約者が「会員必須項目設定で必須項目に設定されていない」場合、 でPOST可能
  • は不可能だが、バリデーション上 ${value} の値を期待している


お忙しいと思いますが、ご確認いただけますと幸いです。

ベストアンサー

  • @n_hgc

    1. 管理画面にて会員必須条件 で必須に設定されている項目はrequired と同じ制限がかかります。
    2. requiredの場合、 field指定なし、null指定、空文字指定の場合エラー
    3. requiredでない場合、null以外の指定で、仕様書記載のバリデーション上問題があるとエラー

    となります。


    例えばcompanyName の場合、string のみの条件となりますので、空文字でも受け付けます。

    一方leaveDateの場合、string<date> なので文字列かつ日付形式の条件となり、空文字は日付形式でないのでエラーとなります。

    指定しないか、"leaveDate": null として頂く必要があります。


    @inori

    birthDate も同様にstring<date>形式のため、空文字は受け付けません。

    指定しないか、"birthDate": null として頂く必要があります。

    また、"sex"のようなenumのものは、0ではなく"0"と、文字列として記載する必要があります。

答え

  • January 2021 編集されました

    @n_hgc

    必須の場合とはAPI定義のrequiredのこととお見受けします。

    普通のrequiredと同じで

    • field設定なし(リクエストBodyにそのフィールド名の要素が含まれない)
    • 値がnull
    • 値が空文字

    のときエラーとなります。


    他の項目についても同様です。


    何か他に疑問点がありましたら、コメントしてください。

  • 質問に乗っからせていただいて恐縮ですが、教えてください。

    例えば、会員登録の誕生日の項目ですが、

    こちら側のシステムでは誕生日が必須項目でなく、登録がある場合とない場合があるとして、

    誕生日の登録がある場合、

    "birthDate":"1990-10-10" で受け付けてくれると思いますが、

    誕生日の登録がない場合、

    "birthDate":"" で送ると、[birthDate]は日付形式(YYYY-MM-DD)が正しくありません とエラーが返ってくると思います。

    となりますと、誕生日の登録がない会員の場合、

    birthDateの項目自体消して、会員情報を送らなくてはならないということでよろしいでしょうか。

    よろしくお願いいたします。

  • ちなみに、

    "sex": 0,

    は、

    "sex": "0",

    じゃないとエラーになると思います。