c#Web API本地化

问题描述:

标题有点误导。我必须构建一个新的Web API应用程序来为我们正在构建的一群不同的客户端提供服务。我不需要API本地化的参数或路线。c#Web API本地化

基本上,客户端会要求使用指定语言的资源,并且web api将返回结果。

我唯一的要求是本地化资源将存储在SQL数据库中,而不是资源文件。

由于Web API只返回本地化结果,并且不需要本地化,我是否应该尝试跟踪.NET本地化实践,还是应该创建一个简单的,缓存的表查找函数来模拟本地化例程?

+0

请提供您的要求的更多细节。你的意思是翻译吗? api是什么意思返回本地化的结果?数据库是否已经拥有不同的本地化数据/结果集? – Gurpreet

从技术上讲,如何在服务器端保存本地化信息与客户端应用程序无关(调用API)。您可以将其保存在数据库中,也可以将其保存在资源文件中;全部取决于系统的体系结构。

但是你可以解决两个方面的要求:在API网址

  1. 看跌区域:客户端应用程序可以提供如下相应的语言环境:

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; 
} 
  1. 传递在HTTP头中的区域设置信息。在服务器端读取头通过了关于区域和跨响应相应地发送:

    public WebRequest GetWebRequest(Uri uri) 
    { 
        WebRequest request = base.GetWebRequest(uri); 
        request.Headers.Add("locale", "en-GB"); 
        return request; 
    } 
    
开始=>
+0

谢谢。我一直在想,我一直在思考整个本地化需求。这不是一个本地化前端的典型案例。 – user3140169