Qual è una buona tecnica per supportare l'ordinamento e il filtraggio con una WebAPI REST

1

Sto sviluppando una WebAPI principale ASP.NET che utilizza EntityFramework per accedere all'archivio dati. Una delle cose che dobbiamo supportare è l'ordinamento e il filtraggio.

Suppongo che la stringa di query HTTP verrà popolata con i vari criteri per il filtraggio e l'ordinamento. Ma mi piacerebbe vedere alcuni esempi reali reali di funzioni di filtraggio / ordinamento piuttosto complesse, come vengono costruiti il filtro e gli oggetti di ordinamento e come vengono create le query EF per ottenere i dati dal database.

Ho fatto un bel po 'di ricerche sull'argomento, ma tutto quello che posso trovare sono esempi banali che non sarebbero appropriati per un'applicazione complessa a livello aziendale.

Infine, non sono interessato a OData. Questa deve essere un'API REST standard.

    
posta Jake Shakesworth 30.12.2016 - 22:04
fonte

1 risposta

2

Questo post del blog illustra stringhe di query compatibili REST appropriate, in particolare:

?sort=created,modified

e

?page=2&page_entries=10

Per creare query personalizzate, puoi creare una stringa SQL personalizzata e inviarla al database utilizzando il metodo EF ExecuteQuery() , oppure usa Linq per aggiungere il necessario Where() o OrderBy() condizioni.

Se usi Linq, puoi aggiungere selettivamente clausole a IQueryable usando le istruzioni if , usa Dynamic Linq se si desidera gestire direttamente le stringhe di query o utilizzare Predicate Builder per costruire un predicato di condizioni personalizzate.

Ulteriori letture
Ordinamento, filtraggio e paging con Entity Framework in un'applicazione ASP.NET MVC

    
risposta data 30.12.2016 - 22:19
fonte

Leggi altre domande sui tag