c#Web API本地化
标题有点误导。我必须构建一个新的Web API应用程序来为我们正在构建的一群不同的客户端提供服务。我不需要API本地化的参数或路线。c#Web API本地化
基本上,客户端会要求使用指定语言的资源,并且web api将返回结果。
我唯一的要求是本地化资源将存储在SQL数据库中,而不是资源文件。
由于Web API只返回本地化结果,并且不需要本地化,我是否应该尝试跟踪.NET本地化实践,还是应该创建一个简单的,缓存的表查找函数来模拟本地化例程?
从技术上讲,如何在服务器端保存本地化信息与客户端应用程序无关(调用API)。您可以将其保存在数据库中,也可以将其保存在资源文件中;全部取决于系统的体系结构。
但是你可以解决两个方面的要求:在API网址
- 看跌区域:客户端应用程序可以提供如下相应的语言环境:
GET https://apiserver.com/api/v1.0.0/en-GB/cities
GET https://apiserver.com/api/v1.0.0/fr-CA/cities
GET 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; }
谢谢。我一直在想,我一直在思考整个本地化需求。这不是一个本地化前端的典型案例。 – user3140169
请提供您的要求的更多细节。你的意思是翻译吗? api是什么意思返回本地化的结果?数据库是否已经拥有不同的本地化数据/结果集? – Gurpreet