Solo/freelance developers (or developers who work in small teams), what is your favorite language/framework for rapidly developing REST APIs. Or, what framework do you find yourself to be most productive in? Curious to hear your thoughts and opinions.
I use Django a lot. I'm quite proficient in Python and really like the batteries-included approach of Django. For REST APIs you have the Django Rest Framework..
I used to use Flask, but I don't like to have to repeatedly have to choose and install packages for common things (as in Django). As an example, after some months not touching a project, I couldn't remember how to make a clean database migration (I was using SQLAlchemy)..
My experience from previous solo projects is that it's surprisingly much work to build and deploy even simple CRUD REST APIs with basic things like jwt authentication, permission checks, filtering, sorting and pagination no matter the language/framework. I've worked with Vert.x, Play Framework, Express.js, Go and the Serverless framework so far.
That's why my current solo project is actually a generator for basic REST APIs, it's currently in beta [1]. The idea is to describe the API you need in YAML, it is then being deployed directly from that.
Under the hood I'm using the Serverless framework with TypeScript which works quite well for me. Everything you need is available as npm packages these days and I found that since switching from plain JavaScript to TypeScript I'm finding errors in my code earlier on.
I 100% agree that setting up a CRUD API with all the bells and whistles is a lot of work. That’s part of why I asked this question - trying to find easier solutions. Will take a look at your project, thanks for your response!
Rails.
Some say there's too much magic going on, but the framework gets out of your way and allows very dry, easy to read code if you know rails (which I don't think takes long to learn).
Easy to build quick prototypes, you can take advantage of the Springboot ecosystem packages developed by enterprise grade devs from around the world, and most infrastructure tools provide Java specific instructions to get started with which makes plugging in tools unfamiliar with more easy
while everyone knows javascript that doesn't mean it's always the right tool for the job. Personally, i had the worst experience with node.js for the backend. There are no standards,you have to configure almost everything from scratch. The best answer might be Ruby on Rails or Laravel. Laravel might be easier to get started,though. Don't be afraid of PHP, it's just a fine, boring language that gets the job done quickly. With Laravel you get authentication and ui scaffolding in minutes, built-in modern asset pipeline with webpack, great tooling, deployment tools etc and a huge community around it.
I've used Flask a ton. That was my go-to for years. I'm now using Go. I think productivity is more related to how well you know the tools than the tools themselves, to a degree.
I'm not currently a Ruby developer but Rails API[1] it's the only framework I can really be efficient and deploy PoC super fast.
A couple of years ago I also used Laravel a lot. No idea about the current state but I've read they are doing cool things too if you are into modern PHP.
Its a small language that fits in your head.
It’s very simple and has a very good native support of http, cookie.
It deploys to a single file.
I think too It’s a a very good option.
I used to use Flask, but I don't like to have to repeatedly have to choose and install packages for common things (as in Django). As an example, after some months not touching a project, I couldn't remember how to make a clean database migration (I was using SQLAlchemy)..