All of our services (external REST APIs and internal services) are written in Go. Like others, we wanted to factor out repeated code, but found it hard to do without making things messy or hiding the flexibility of the built-in net/http interfaces. After evaluating many “REST frameworks” for Go, we found some that seemed to have good ideas, but nothing that met our needs well enough. Using these as inspiration and drawing on experience with other languages and their frameworks, we created Siesta. We believe it improves on other projects with similar goals, and is worth trying.
Siesta is our third “REST framework;” the others are ugly internal-only failures we will never open source. Siesta is designed to accomplish the following:
- Handle common tasks such as defining and validating inputs, which can be in the URL or query string. These are strongly typed and flexible.
- More sophisticated routing than …