5 Best Practices for Designing RESTful APIs

Over the years, I have been really blessed to work on a number of API developments and to be able to consume a lot of APIs as well whether the APIs were in finance, sales automation (salesforce), or other services. A lot of the APIs had really noticeable deficiencies which I feel really made using the API a lot more difficult than it had to be.

This blog article is really a look at years of experience with APIs and a first attempt to at trying to make them easier to use for the developer. It’s really important to take time upfront and design a great API because it has the potential to be a huge asset for the company, and also has the potential to also be the company’s greatest liability.

A public API will have to remain virtually the same basically forever, so you really only have one chance to get it right. This is because customers or other integrators typically won’t ever update. If your API doesn’t have versioning you’ll basically never be able to make breaking changes. As users use your API and as feedback is collected you should be evolving the API.…

What is ORM

What is ORM?

Most software projects need to talk to a database at some point – they usually do GET queries for data, update a field or create a record. In the past, people would write raw code that communicated with the database and built an object or some code representation of the data that they would manipulate. This lead to an incredible amount of duplicated code for every project that usually had some subtle bug that was present in all libraries. …

Best Practices for Writing Tests

Best Practices for Writing Tests

When I say the word test, what’s the first thing that comes to your mind? It’s probably the boring tests that you did in school that were either multiple choice or required sentences or in math showing your work. When I talk about tests it’s usually an automated process which can execute on software and help improve the quality and act as part of the quality assurance process.

There’s a bunch of different ways of doing tests such as automated testing, manual testing, smoke tests, and then various different subtypes such as unit testing or regression testing.…