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.