安らかなものを構築しようとしていますが、データをAPI
にシリアル化する方法に苦労しています。JSON
HTTP query string
リクエストで渡す必要がある必須およびオプションの引数が多数あります。たとえば、(以下の JSON オブジェクトとして表されます):
{
"-columns" : [
"name",
"column"
],
"-where" : {
"-or" : {
"customer_id" : 1,
"services" : "schedule"
}
},
"-limit" : 5,
"return" : "table"
}
さまざまな数の異なるクライアントをサポートする必要があるため、この json オブジェクトをクエリ文字列に変換する標準化された方法を探しています。ありますか、それはどのように見えますか?
もう 1 つの方法は、ユーザーがメッセージ本文で json オブジェクトを渡すことを許可することですが、それを避ける必要があることを読みました ( HTTP GET with request body )。
何かご意見は?
明確にするために編集:
上記の特定の json オブジェクトをいくつかの異なる言語でエンコードする方法をリストします。
jQuery
使用$.param
: -columns[]=name&-columns[]=column&-where[-or][customer_id]=1&-where[-or][services]=schedule&-limit=5&return=columnPHP
使用http_build_query
: -columns[0]=name&-columns[1]=column&-where[-or][customer_id]=1&-where[-or][services]=schedule&-limit=5&return=columnPerl
使用URI::query_form
: -columns=name&-columns=column&-where=HASH(0x59d6eb8)&-limit=5&return=columnPerl
使用complex_to_query
: -columns:0=name&-columns:1=column&-limit=5&-where.-or.customer_id=1&-where.-or.services=schedule&return=column
jQuery と PHP はよく似ています。complex_to_query を使用する Perl も、それらにかなり似ています。しかし、まったく同じに見えるものはありません。