Come strutturare i file client API restful nel progetto C #?

0

Ho sviluppato un'API Restful in PHP, ora l'API rende disponibili diverse risorse come: Article, User, Service, Trace etc... .
Implementerò ogni risorsa in una DLL portatile, quindi posso utilizzare il metodo API in ogni piattaforma come Xamarin, XBox, Windows, ecc.

Voglio chiedere come dovrei impostare la struttura di ogni DLL.
Sto pensando di utilizzare il seguente stack:

Il nome del progetto all'interno della soluzione è il nome della risorsa, ad esempio Article . Ora ho una classe chiamata Article . La risorsa Article implementa altre risorse secondarie come Fam e List . Quindi nella stessa DLL posso anche usare il metodo di altre sotto-risorse. Nella soluzione, per semplicità, ho separato ciascuna sub-risorsa nella loro classe come:

Article, Fam and List

La mia API RestFull rende disponibili questi verbi: GET - DELETE - POST - PUT . Quindi nella mia DLL ho creato 4 cartelle con il nome smen come verbi disponibili. In ogni cartella, ad esempio (GET), ho la risorsa di classe e sub_resources:

Article_GET, Fam_GET and List_GET

Nelle classi sopra ho solo la richiesta del metodo GET. Nella classe principale, ad esempio Article implemento tutti i metodi delle classi GET - DELETE - POST - PUT , piccolo esempio:

public class Article_GET
{
        public class Article
        {
            public string codice { get; set; }
            public string descrizione { get; set; }
        }

        public class RootObject
        {
            public List<Article> article { get; set; }
        }

        public List<Article> GetArticle()
        {
            var obj = JsonConvert.DeserializeObject<RootObject>("json");
            return obj.article;
        }
    }
}

e questa è la classe Article :

public class Article
{
        public static List<Article_GET.Article> GetArticles()
        {
            return new Article_GET().GetArticle();
        }
}

così quando imparo la DLL che ha questo spazio dei nomi: CompanyName.Product.Article Posso semplicemente usare: Article.GetArticles(); o Article.AddArticle() etc ...

Esempio di pila di immagini:

Non so se si tratta di una buona gerarchia delle classi di stack. Qualcuno potrebbe dirmi come posso migliorare questo? Grazie in anticipo.

    
posta Dillinger 25.04.2016 - 14:44
fonte

1 risposta

3

Sembra che alla fine ti morderà dietro, visto che è molto ingombrante e non offre realmente una buona manutenzione.

L'avrei organizzato in questo modo:

Ogni risorsa (modello) ottiene il proprio file di classe contenente i suoi attributi, come:

Modello / Article.cs

  • Id
  • Nome
  • Prezzo

Ogni raccolta di risorse ha una classe contenente metodi per gestire tale risorsa, come:

Risorse / Articles.cs

  • Ottieni (int id)
  • Lista ()
  • Aggiornamento (int id, articolo dell'articolo)
  • Elimina (int id)
  • Crea (articolo articolo)

Ecco un esempio di dotnetfiddle: link

    
risposta data 25.04.2016 - 20:40
fonte

Leggi altre domande sui tag