1. ホーム
  2. curl

[解決済み] PATCH動詞をcurlで使用する方法

2022-03-14 22:18:57

質問

サーバーにPATCHコールを行おうとしています。次のコマンドを使用しています。

curl --data status=closed -X PATCH https://api.viafoura.com/v2/dev.viafoura.com/pages/7000000043515 

PATCH リクエストの送信方法はこれでよいのでしょうか?statusパラメータが設定されていないというエラーが出ます。私は、-dataがPOSTリクエスト専用であるため、サーバーがstatusパラメータを見つけられなかったのだと推測しています。

これがその応答です(参考)。

{"http_status":400,"error":"Parameter validation errors","validation_errors":{"status":{"error":"Request missing status parameter."}}}

このサービスに関するドキュメントを見ることができます ここで .

解決方法は?

このような書式を使用します。

curl --request PATCH https://api.viafoura.com/v2/dev.viafoura.com/pages/7000000043515?status=closed

そのAPIは status パラメータはPATCHボディの一部ではなく、URLのクエリパラメータとして使用します。

この時点でサーバーは401エラーを返します: "ページの設定を変更するにはログインする必要があります." おそらく、最初にこのようなものでログインする必要があります。

curl --request POST "https://api.viafoura.com/v2/dev.viafoura.com/users/login?password=TeNn!sNum8er1&[email protected]"

私はこの例で彼らのドキュメントにある認証情報を使い、彼らの開発サーバーで動作すると考えたのですが、現在 "間違ったパスワード" というエラーが返されています。

有効な認証情報を持っていれば、セッションクッキーを取得し、それを使ってPATCHリクエストを認証することができるはずです。