Sto provando a creare un riposante API
e sto faticando su come serializzare i dati JSON
su un HTTP query string
.Modo standardizzato per serializzare JSON per interrogare la stringa?
Ci sono un certo numero di argomenti obbligatori e facoltativi che devono essere trasmesso nella richiesta, ad esempio (rappresentato come oggetto JSON sotto):
{
"-columns" : [
"name",
"column"
],
"-where" : {
"-or" : {
"customer_id" : 1,
"services" : "schedule"
}
},
"-limit" : 5,
"return" : "table"
}
Ho bisogno di supportare un numero diverso di clienti differenti così Sto cercando un modo standardizzato per convertire questo oggetto json in una stringa di query. Ce n'è uno, e come appare?
Un'altra alternativa è consentire agli utenti di passare semplicemente l'oggetto json nel corpo di un messaggio, ma ho letto che dovrei evitarlo (HTTP GET with request body).
Qualche idea?
Modifica di chiarimenti:
Listing come alcune lingue diverse codifica il dato oggetto JSON sopra:
jQuery
utilizzando$.param
:-colonne [] = nome &-colonne [] = colonna & -where [-or] [customer_id] = 1 & -where [-or] [servizi] = programma & -limit = 5 & ritorno = colonnaPHP
utilizzandohttp_build_query
:-colonne [0] = nome &-colonne [1] = colonna & -dove [-or] [customer_id] = 1 & -dove [-or] [servizi] = programma & -limit = 5 & ritorno = colonnaPerl
usandoURI::query_form
: =-colonne name &-colonne = colonna & -dove = HASH (0x59d6eb8) & -limit = 5 & ritorno = colonnaPerl
utilizzandocomplex_to_query
: 0 =-colonne: nome & -colonne: 1 = colonna & -limit = 5 & -where.-or.customer_id = 1 & -where.-or.services = pianificazione & ritorno = colonna
jQuery e PHP è molto simile. Anche Perl usando complex_to_query è molto simile a loro. Ma nessuno ha lo stesso aspetto.
perché non utilizzare solo le richieste POST? – akonsu
controllare se questo aiuta, http://api.jquery.com/jQuery.param/ – Jubair
@akonsu: Perché sto cercando di recuperare (GET) alcuni dati, non POST nuovi dati. – Andreas