results のAPI指定について
回答済みお世話になっております。
/api/apps/pigeon/results の curl 指定についてご教示ください。
・limit=50
・status=failed
・resultId="a9f1d293-dc5f-43ce-b298-9b96ed1fa4cf"
の指定をしたところ、以下のエラーになりました。
【質問】
①limit は 0~1000 の間の数値と書いてますが "50" はなぜ invalidなのでしょうか
②このAPI は一覧用なので、resultId の指定は無効でしょうか?
またcurl で値(=)を指定する時は、どんな時も""(ダブルコーテーション)は不要でしょうか?このAPI では、resultId は無効かもしれませんが、"" を外した時には curl エラーとなりました。
以上、ご教示のほどよろしくお願いいたします。
-
ご質問ありがとうございます。
回答させていただきます。複数のクエリパラメーターの指定方法について
①limit は 0~1000 の間の数値と書いてますが "50" はなぜ invalidなのでしょうか
こちらについて、limit の「50」自体は正常に処理可能な値となります。
エラー出力を拝見するに、今回 curl コマンドにてURLを指定する際、
https://xxx.cloud.kompira.jp/api/apps/pigeon/results?limit=50+status=failed+resultId=a9f1d293-dc5f-43ce-b298-9b96ed1fa4cf
のように「+」区切りで複数のパラメーターが指定されています。
( xxx の部分は御社スペースのURLに合わせて読み替えください)これは正しくは、
https://xxx.cloud.kompira.jp/api/apps/pigeon/results?limit=50&status=failed&resultId=a9f1d293-dc5f-43ce-b298-9b96ed1fa4cf
のような「&」区切りとなり、この区切り文字が誤っているため limit の指定が「50」ではなく「50+status=failed+resultId=a9f1d293-dc5f-43ce-b298-9b96ed1fa4cf」と解釈されているものと考えられます。
もし見かけ上の指定が「&」区切りとなっているのにも関わらず提示のエラーが出るようであれば、お使いのコンソールにおいて、「&」が特別な意味を持つことにより curl コマンドに対して正しく渡されなくなってしまっている可能性がございます。
以前いただいた情報から恐らくは Windows の「コマンドプロンプト」をご利用と思いますが、その場合は URL 全体を 「"」で囲むことで解消する可能性はございます。
クエリパラメータの囲み文字について
「"」により囲むのは不要で、むしろ URL の仕様としては「"」は使用できない文字とされております。
そのため「"」がない状態で正しく動くのが自然ですが、そうでないようであれば先の件と同様にコンソール側の何らかの仕様の影響を受けている可能性がございます。
resultId を指定してのデータ取得について
②このAPI は一覧用なので、resultId の指定は無効でしょうか?
こちらに関してはその通りで、一覧において resultId を指定しても効果はございません。
resultId は連絡処理結果ごとに割り当てられる一意な ID となっており、こういった ID を使用した 1 件のみのデータ取得は「連絡処理結果の一覧取得」 API ではなく「連絡処理結果の取得」API を用いて行います。
こちらの API では resultId を下記のように URL のパス部に含めて指定します。
https://xxx.cloud.kompira.jp/api/apps/pigeon/results/a9f1d293-dc5f-43ce-b298-9b96ed1fa4cf
この API の取得結果には必ずデータが 1 件のみ含まれます。
なお、存在しない resultId を使用した場合はエラーとなります。一覧 API での絞り込みについて
ここまでに触れた以外に、指定しているパラメーターから「status」による絞り込みを意図されているものと思いますが、Pigeon の連絡処理結果 API においては結果のソートにのみ対応しており、絞り込みを行う機能がございません。
ご不便をおかけ致しますが、ご理解のほどよろしくお願いいたします。
-
お世話になっております。
「&」区切りのご指摘ありがとうございました。
以下の絞り込みで連絡処理結果の一覧を取得しようと思いますが、以下のようなエラーとなってしまいます。申し訳ありませんが以下①②の質問への回答をお願いいたします。
〔エラーメッセージ〕
"Authorization error","detail":"Access denied","instance":"/api/apps/pigeon/results?sort=_createdAt"}
'offset' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
'limit' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
〔指定したい絞り込み〕※「&区切り」
sort=_createdAt
offset=820
kimit=50
①上記の絞り込みを行うと添付のエラーとなる
〔投入コマンド〕
/api/apps/pigeon/results?sort=_createdAt&offset=820&limit=50 -H "X-Authorization: Token...(以下略)
②sort=_createdAt のみで実行した場合は正常に出力できる
〔実行状態〕"offset": 0,"limit": 30,"total": 853,"items": [{"resultId": "94cb8646-c601-4e32-9ca7-49fc2bddc123","taskId": "c4e1c66c-6598-492e-a067-a59bb173bb51","parameters": { ......以下略
以上、よろしくお願いいたします。 -
おそらく Windows のコマンドプロンプトをご利用いただいていると思いますが、コマンドプロンプトにおいて「&」は複数のコマンドを1行に連結して実行するための記号として用いられます。そのためご提示のコマンドは
curl https://(中略)/api/apps/pigeon/results?sort=_createdAt
offset=820
limit=50 -H "X-Authorization: Token...という3つのコマンドと解釈され、「offset」や「limit」が別コマンドとして取り扱われたことから提示のエラーが生じたものと考えられます。
こちらに関してはURL を「"」で囲うことで防ぐことができるものと思われます。
curl "https://(中略)/api/apps/pigeon/results?sort=_createdAt&offset=820&limit=50" -H "X-Authorization: Token...
また「sort」の指定について、 createdAt の降順で出力するのが意図かと思いますが、その場合の指定は「_createdAt」(アンダーバー始まり)ではなく「-createdAt」(ハイフン始まり)が正しい指定となります。これを誤ったとしてもエラーにはなりませんが、出力順には反映されませんのでご注意ください。
-
お世話になっております。
/api/apps/pigeon/results のcurl コマンド投入時の指定について教えてください。
①isActive,status を sort で指定しますが有効になりません。
status の failed でsort したい時、isActive の true でsortしたい時の構文はどうすれば良いでしょうか?
/api/apps/pigeon/results?sort=status=failed
/api/apps/pigeon/results?sort=status:failed ではダメでした。isActive も同じです。
また、こういった指定構文の手引きのようなものがどこかにあれば教えていただけるでしょうか?
②/api/apps/pigeon/results に関しては、status などの sortキー指定のみで、
データの絞り込みは出来ないと以前伺いました。
指定可能な機能としては、API一覧に書いてある
・sort 指定
・offset の位置指定
・limit の件数指定
のみ、ということで合ってますか?
何か他に指定できるものがあれば、参考に教えていただきたいのですが。
以上、よろしくお願いいたします。 -
sort パラメーターの指定について
sort パラメーターにおいては status や isActive の具体的な値を指定して優先指定することはできず、昇順・降順の指定のみが可能となります。
status を例に取りますと、ステータス昇順でのソートを行う場合は下記のように指定します。
/api/apps/pigeon/results?sort=status
またステータス降順でのソートを行う場合は「-」をつけ、下記のように指定します。
/api/apps/pigeon/results?sort=-status
こちらについて、過去の回答でも詳しく説明しておりますので併せてご参照ください。
架電に関する日時データは、秒単位で所有していますか? への回答
また、ステータスでのソート時のソート順についてはこちらの回答を併せてご参考にしていただければと思います。
連絡履歴画面の「ステータス」「架電開始日時」「理由」の表示切替について への回答
API に指定可能なパラメータについて
/api/apps/pigeon/results に対して指定可能なパラメータはご提示の 3 種のみとなります。
サインインしてコメントを残してください。
コメント
7件のコメント