2016-10-04 9 views
2

JSON-APIレスポンスに表示されるリンクのクエリパラメータがパーセントエンコードされる必要がありますか? jsonapi.orgからjson-api応答のリンクをエンコードする必要がありますか?

実施例は同様に、符号化されない:

GET /articles?include=author&fields[articles]=title,body&fields[people]=name HTTP/1.1 
Accept: application/vnd.api+json 

注:上記の例URI

{ 
    "links": { 
    "self": "http://example.com/articles", 
    "next": "http://example.com/articles?page[offset]=2", 
    "last": "http://example.com/articles?page[offset]=10" 
    }, 
    "data": [{ 
    "type": "articles", 
    "id": "1", 
    "attributes": { 
     "title": "JSON API paints my bikeshed!" 
    } 
    ] 
} 

しかしながら、要求に符号化パラメータに関するメモが存在します読みやすくするために、エンコードされていない[と]文字を示しています。実際には、これらの文字は、RFC 3986の要件に従って%エンコードされている必要があります。

このメモは要求にのみ適用されますか?または応答も同様に、パーセントエンコードする必要があります:

{ 
    "links": { 
    "self": "http://example.com/articles", 
    "next": "http://example.com/articles?page%5Boffset%5D=2", 
    "last": "http://example.com/articles?page%5Boffset%5D=10" 
    }, 
    "data": [{ 
    "type": "articles", 
    "id": "1", 
    "attributes": { 
     "title": "JSON API paints my bikeshed!" 
    } 
    ] 
} 

答えて

1

はい、あなたの質問にURIのをコードについての注意が要求にのみ適用され、ない応答の内側に返さjson文字列で

応答、脱出するために必要な唯一のものは、二重引用符文字"

要求(ない応答)をGETであるワックスの異なるボールです。 URLのパラメータとして渡されたGET要求内のものは、URLエンコードされている必要があります。パラメータがurl=http://some.url.comの場合、パラメータ割り当ての右側にあるURLにエンコーディングが必要です。

POSTリクエストとPUTリクエストでは扱いにくいです。ヘッダーに設定されているコンテンツタイプに応じて、エンコードする必要があります。コンテンツタイプがapplication/jsonの場合は、json文字列内の任意の文字列をURLエンコードする必要はありません(前述の"を除く)。

あなたの状態をエンコードしている特定のコンテンツがあなたの送信内容と一致しない場合(または明示的に追加していない場合は何かにデフォルト設定されています)、content-type: application/x-www-form-urlencodedを送信し、サービスはそれを受け入れることも受け付けないこともあり、誰かがそれを解読するためのURLのように内部のコンテンツをどのように扱うかを知っている。

関連する問題