Parametri complessi multipli in una chiamata post REST

0

Questo è un punto cieco nella mia comprensione del REST. Capisco come effettuare chiamate (e posta) se la chiamata è semplice e richiede forse alcuni parametri. Esempio:

https:\randomAPI\get\coats\size:12\length:8

Ma cosa succede se ho bisogno di aggiornare una risorsa, e la richiesta richiede più parametri, alcuni dei quali potrebbero essere oggetti?

    
posta SoftwareSavant 15.07.2016 - 16:45
fonte

2 risposte

4

Normalmente, POST un documento JSON o XML con dati più complessi.

    
risposta data 15.07.2016 - 16:53
fonte
0

Il modo migliore per passare più oggetti complessi ai servizi webapi è usare la tupla diversa dalla dinamica, la stringa json, la classe personalizzata.

HttpClient.PostAsJsonAsync("http://Server/WebService/Controller/ServiceMethod?number=" + number + "&name=" + name, Tuple.Create(args1, args2, args3, args4));

[HttpPost]
[Route("ServiceMethod")]
[ResponseType(typeof(void))]
public IHttpActionResult ServiceMethod(int number, string name, Tuple<Class1, Class2, Class3, Class4> args)
{
    Class1 c1 = (Class1)args.Item1;
    Class2 c2 = (Class2)args.Item2;
    Class3 c3 = (Class3)args.Item3;
    Class4 c4 = (Class4)args.Item4;
    /* do your actions */
    return Ok();
}

Non è necessario serializzare e deserializzare il passaggio dell'oggetto mentre si utilizza la tupla. Se vuoi inviare più di sette oggetti complessi, crea un oggetto tupla interno per l'ultimo argomento della tupla.

    
risposta data 18.07.2018 - 12:29
fonte

Leggi altre domande sui tag