2017-12-02 4 views
0

私はDRFを使って別のサーバにGET要求を行い、この応答をクライアントに返します。Django - 別のサーバからの応答をシリアライズ

私が知りたいのは、他のサーバーの応答から選択したフィールドだけを取得してクライアントに返す方法です。

{ 
"plans": [ 
    { 
"setup_fee": 500, 
"amount": 990, 
"code": "plano01", 
} 
{ 
"setup_fee:... 
"code": "plano02", 
}... 

多くのオブジェクトの配列:私が持っているもの

は、このような応答です。

{ 
    "plans": [ 
     { 
    "code": "plano01", 
    } 
    {"code": "plano02"... 

のみコードフィールド:そして、私はこのようなクライアントに何かを与えたいです。

Django/DRFでこれを行うにはどうすればよいですか?

答えて

2

ここではDRFの使用にはあまり意味がありません。あなたはJSON形式のレスポンスを得ています。これを構文解析して、必要な要素を抽出し、JSONとして再び戻す必要があります。 DRFは過度のものになるでしょう。表示は単純に次のようになります。

​​
+0

私はDRFを使用していますが、私は、クライアントが送信する情報の一部を使用すると、クライアント側の敏感なHTTPヘッダー情報を置くことを避けるために必要があるため。しかし、あなたの答えはとても役に立ちました、ありがとう。 – WilsonPena

0

私はこの個人的にDRFを使用するとは思わないが、可能だとは思う。

これは、ちょうどリクエストとdjangoを使用して、かなりストレートな方法で行うことができると思います。

ような何か:

from django.http import JsonResponse, HttpResponse 

import json 
import requests 


def plans(request): 
    response = requests.get("my url for the request") 
    if response.status_code == 200: 
     json_content = json.loads(response.content) 
     # json_content is a python dictionary, so you can just postprocess the way you want it here 
     return JsonResponse(json_content) 
    else: 
     return #You will want to return an HttpResponse with the appropriate status code, see the docs below on that 
     # https://docs.djangoproject.com/en/1.11/ref/request-response/#django.http.HttpResponse.status_code 
+0

これは問題ですが、DRFリクエスト内でリクエストを使用しています。クライアントの情報の一部を使用する必要があるため、別のAPIの情報も使用する必要があります。 – WilsonPena

関連する問題