Search code examples
urlrestpathlocale

RESTful URL: where should I put locale? example.com/en/page vs example.com/page?locale=en


I'm deciding how to organize URL and put locale into it. I have two choices:

  1. example.com/en/page
  2. example.com/page?locale=en -- Google way
  3. en.example.com/page -- isn't good because I'm using subdomains

From one side example.com/en/page looks better and more compact than example.com/page?locale=en. From other side we have two URLs example.com/en/page and example.com/ru/page for one resource with two representations. Of course in case example.com/page?locale=en we have two URLs for one resource too, but it is slightly more RESTful on my taste.

What's the best practice? What are you using and why?


Solution

  • Localization is part of Content-Negotiation in Restful API.

    So my preferred way I would do it through headers. HTTP offers standard way of defining wanted language. Have a look at Accept-Language header.