[英]c# Web API localization
標題有點誤導。 我必須構建一個新的Web API應用程序來為我們正在構建的許多不同客戶端提供服務。 我不需要API中的參數或路由本地化。
基本上,客戶端將要求指定語言的資源,web api將返回結果。
我唯一的要求是本地化資源將存儲在SQL DB中而不是資源文件中。
由於Web API只返回本地化結果並且不需要本地化,我應該嘗試遵循.NET本地化實踐,還是應該創建一個模仿本地化例程的簡單緩存表查找功能?
從技術上講,如何在服務器端保存本地化信息與客戶端應用程序(調用API)無關。 您可以將其保存在數據庫中,也可以將其保存在資源文件中; 一切都取決於系統的架構。
但您可以通過兩種方式解決您的需求:
獲取https://apiserver.com/api/v1.0.0/en-GB/cities
獲取https://apiserver.com/api/v1.0.0/fr-CA/cities
獲取https://apiserver.com/api/v1.0.0/en-US/cities
在服務器端,您可以按如下方式配置方法:
[Route("v1.0.0/{locale}/cities")]
[HttpGet]
public List<City> GetCities(string locale)
{
// Get cities by locale
return cities;
}
在HTTP標頭中傳遞區域設置信息。 在服務器端讀取標頭中傳遞的區域設置並相應地發送響應:
public WebRequest GetWebRequest(Uri uri) { WebRequest request = base.GetWebRequest(uri); request.Headers.Add("locale", "en-GB"); return request; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.