.. _design: Design Choices ================ ----------- Why Python? ----------- Python was a straightforward choice. The ease of string manipulation is perfect for translation module. ----------- Why Flask? ----------- Flask as compared to Django is a much lighter weight framework. Since the objective of this service does not need a DB, ORM or an CRM like Admin UI. Many features of Django would have been unnecessary whereas Flask fits perfectly. ----------------------------------- Why make API a Post instead of Get? ----------------------------------- One can argue that we are trying to get translation of text. Therefore API should be a Get. I agree the request is idempotent and has no side-effects(`RFC 7231 `_). I slightly leaned towards a POST request for the following reasons: * the to be translated text may contain non-ASCII characters * the text maybe large and url encoding in Get will result in very long URLs. This might causes unexpected behaviour in some servers.