Situazione
Attualmente sto rifattorizzando il codice web esistente. Il codice attualmente ruota intorno a un oggetto ServerConfiguration
. Sembra qualcosa del genere:
string UrlBase = "https://myserver.com/api"
string UrlLogin = "/v1/login";
string UrlProjects = "/v1/projects?api_token={0}";
public string GetLoginUrl()
{
return UrlBase + UrlLogin;
}
public string GetProjectsUrl(string apiToken)
{
return string.Format(UrlBase + UrlProjects, apiToken);
}
L'API a cui si sta accedendo è stata creata appositamente per questa app. Pertanto, non esiste un set completo di funzionalità CRUD, ma solo un set limitato di URL. La maggior parte delle cose può essere letta solo, altre cose possono essere salvate, ma su un altro link ecc.
Problema
Probabilmente i metodi dovrebbero restituire Uri
anziché string
, ma il mio problema è più che non riesco a trovare il posto giusto in cui questa informazione appartiene. Da un lato, è bello avere tutti i link in un posto e avere un posto dove cambiare l'indirizzo del server, nel caso dovesse mai spostarsi.
Mettere un link in es. un proprio oggetto LoginRequest
si sentirebbe più orientato agli oggetti, ma duplicherebbe anche la parte UrlBase
in ogni richiesta e violerebbe DRY.
Domanda
Dove archiviare gli URL?
La mia ipotesi è che probabilmente ci sono più API dedicate, limitate e limitate come questa là fuori di API CRUD per le imprese complete . Quindi probabilmente esiste un modo consolidato e idiomatico di memorizzare i collegamenti quando si oggettivizzano le richieste web. Forse ci sono anche diverse scuole di pensiero distinte. Tuttavia, dato che il mio google non ha rivelato alcuna informazione in merito, non so nemmeno dove mi trovo con la mia attuale soluzione.