Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Ottenere elenchi di risorse

Implementare un metodo che restituisca un elenco di risorse, per esempio un elenco di definizioni appartenenti ad un specifica categoria.
Implementare un metodo che restituisca un elenco di risorse, per esempio un elenco di definizioni appartenenti ad un specifica categoria.
Link copiato negli appunti

L'esempio di API che abbiamo implementato riguarda il recupero della definizione di un termine, l'individuazione cioè di un'unica risorsa. Vediamo ora come implementare un metodo che restituisca un elenco di risorse, come può essere ad esempio un elenco di definizioni appartenenti ad un specifica categoria.

Modifichiamo innanzitutto la classe Item aggiungendo la proprietà Category:

public class Item
{
    public string term { get; set; }
    public string definition { get; set; }
    public string category { get; set; }
}

Valorizziamo la proprietà per tutti gli elementi contenuti nel nostro array di definizioni e creiamo un nuovo metodo GetItemsByCategory() per il controller ItemsController.

public Item[] GetItemsByCategory(string category)
{
    return items.Where(
	    (p) => string.Equals(p.category, category,
		                     StringComparison.OrdinalIgnoreCase)).ToArray();
}

Il metodo prevede un parametro che specifica la categoria di appartenenza delle definizioni. In base a tale parametro vengono selezionate le voci del glossario che faranno parte del risultato, che sarà costituito da un array di oggetti di tipo Item.

Sul lato client potremo accedere all'elenco di definizioni di una determinata categoria, ad esempio Web, tramite un URI del tipo /api/items?category=Web. Sfruttando jQuery possiamo effettuare la chiamata e visualizzare i risultati con la seguente funzione:

function findItemsByCategory(category) {
	$.getJSON("api/items?category=" + category,
	function (data) {
		$('#divDefinizioni').html('');
		$.each(data, function (key, val) {
			var str = '<p><b>' + val.term + '</b><br/>' + val.definition + '</p>';
			$('<li/>', { html: str }).appendTo($('#divDefinizioni'));
		});
	})
	.fail(
		function (jqXHR, textStatus, err) {
			$('#divDefinizioni').html('Error: ' + err);
		});
}

Come possiamo vedere dal codice, come risposta della richiesta Ajax otteniamo un array di oggetti che rappresentano le voci del glossario individuate dalla nostra applicazione.
Il risultato a video sarà analogo a quello di seguito illustrato:

Figura 06.

Ti consigliamo anche