0

最近、私はPythonとFlaskを使って、エンドユーザー向けにRESTfulAPIを公開することに懸命に取り組んでいます。現時点では、これはGETメソッドのみであり、POSTはありません...これまでは。

私に寄せられた興味深いリクエストの1つは、GETリクエストを受け取ることができるかどうかを判断することでした。GETリクエストはJSONに出力され、POSTリクエストとして別のWebサービスにリダイレクトされます。

それが理にかなっている場合は、Webサービスを介してデータをコピーするようなものと考えてください。または、「GET-redirectdata-POST」のようになります。

ポイントをさらに家に帰すために、私は簡単なGETリクエストを持っています:

urllib2.Request("http://localhost:5000/request/security/773/20110101")

出力はJSONであり、そのデータを取得してPOSTして次の場所に戻します。

http://localhost:5000/submit/transaction/773/20110101

データマッピングが1対1であると仮定します(それはそうです)。サーバー側で1回の呼び出しとしてそれを行う方法はありますか?それも賢いことですか?考え、アイデア、コメントを探しているだけです。

4

1 に答える 1

1

簡単そうです。リクエスト/セキュリティハンドラからの投稿だけをしないのはなぜですか?

def request_security_handler():
    ....
    data = "Data"
    urllib2.Request("/submit/transaction/773/20110101", data)
    return data

投稿がオプションの場合は、次のように取得できます。

urllib2.Request("http://localhost:5000/request/security/773/20110101?RepostResultTo=/submit/transaction/773/20110101")

その後:

def request_security_handler(RepostResultTo):
    ....
    data = "Data"
    urllib2.Request(RepostResultTo, data)
    return data

いずれにせよ、これがサーバーとの単一のラウンドトリップであるためには、サーバーはそれ自体に対してPOSTを実行する必要があります。クライアントは、GETから結果を取得してから、2回のラウンドトリップでPOSTを実行することはできません。

于 2012-07-25T20:09:38.917 に答える