A big problem for REST APIs is its lack of standard specification. If you put 10 developers in a room and ask them what a REST API is, they are bound to all disagree on something. In order for developers at Hack4Impact to easily pick up, develop, or utilize APIs that are developed by Hack4Impact, we have made a REST API specification for all REST APIs developed inside of Hack4Impact.

What is REST?

Representational State Transfer (REST) is a specification on how to design APIs. This involves five required constraints. We do not follow all of these, as our APIs are generally only consumed by one client: our frontend, which is also written by us. The following list explains what aspects of each constraint we meet, and which ones we don't.

Uniform Interface

Specification

This specification is not meant to be a stringent one. It's more a specific guideline in parts where standardization would provide more clarity and allow for greater developer velocity cross-team. Our Inspiration.

HTTP header functions

Sensible Resource Names

Creating good resource names will allow frontend developers and yourself easily navigate the API.

  1. Use plural nouns, everything as lowercase, and use _ for spaces