Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 706
petRUShka Avatar asked Oct 25 '11 16:10

petRUShka


1 Answers

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.

like image 116
manuel aldana Avatar answered Sep 28 '22 09:09

manuel aldana