A question that is asked with increasing regularity in the APIs You Won't Hate Slack Group is one which has been asked for years, but does not always have a good answer. The question is:
Paul Jones recently wrote an article called An Object Lesson in Conduct Enforcement. The title starts off factually inaccurate, and it goes downhill from there.
The other week I wrote an article called Why is Everyone Outraged?, where I explained how the media often manufactures outrage, making it seem worse out there than it really is. This outrage narrative leads some people to think the world is being taken over by evil SJWs, whilst that is generally not at all the case.
There have been about twenty articles I want to write about equality in tech, and they all end up crossing over into one big mess. I'm going to start unpicking these articles into a series, and I want to start by asking this question.
Made in Production has been something that my BFF Zack and I have been working on for a while. We had the idea to start selling super-niche programming t-shirts in 2013, we finally got the store up and running on some janky Python in 2014, then shut it down after a few months due to a slew of unforeseen problems. Now the site is back and better than ever, and I thought I'd tell you lot a story.
File uploads are one thing that always feel rather complicated, and working out how to handle this in an API doesn't make life easier. For many programmers, this has been abstracted away behind the HTTP standard, HTML and convenient features in languages like PHP, that populate a $_FILES array for us to play with. This is not really how it works for an API.
Want an integrated deployment process that sends tags off to the right environment (QA or Production) automatically as soon as they're pushed to Git? Read on!
When planning my talk and book on REST/HTTP API development, I ended up mentioning documentation towards the end, and flippantly said "Oh and API Blueprint is pretty good probably just use that." This is something I'd love to fix with a time machine, as these days I spec out an API in API Blueprint before I get anywhere near the code.
Regularly, I make a general piece of advice, and the types of responses are pretty similar regardless of the actual conversation.
Don't be fooled into thinking you can use HTTP status codes on their own. You need to supplement them using error messages, with maybe some specific error codes of your own and links to documentation explaining what the problem is.