2017-12-07 20 views
0

私の目標です。サイトコアのWebのAPIのデフォルトのコンテキストの言語

しかし、要求は何の言語を意味しない

http://myapi.com/api/products/all 

が要求されている場合、それはデフォルトの言語から製品を返します。この場合は "en"です。

これは私がwebapiconfigで持っているものです。

config.Routes.MapHttpRoute(
        name: "mypi", 
        routeTemplate: "{language}/api/{controller}/{action}/{id}", 
        defaults: new { id = RouteParameter.Optional, language = "en" } 
      ); 

問題は、言語が要求されていない場合、英語がデフォルトになっていないことです。むしろ最後に要求された言語が必要です。 言語が要求されていない場合でも、何らかの理由でデフォルト言語を使用するように強制できますか?

+0

コントローラアクションのコードサンプルを投稿してください。 –

+0

http://myapi.com/api/products/allへのリクエストで、言語値を持つCookieが渡されますか? – Jeroen

+0

@ジェロームの番号。明示的に何も渡していません。 – kandroid

答えて

0

私はあなたがリゾルバを使用して、これを解決する知っているが、私はそれらは、あなたが別のルートを作成することができます異なる2 routes..meaningされていると思う:

config.Routes.MapHttpRoute(
       name: "mypinolang", 
       routeTemplate: "api/{controller}/{action}/{id}", 
       defaults: new { id = RouteParameter.Optional, language = "en" } 
     ); 

次に、あなたのように「言語」を受け入れるために、あなたのAPIメソッドを持つことができますパラメータ。ただし、他のAPIメソッドに応じて、この回答がうまくいかない可能性があります。

関連する問題