RESTful
2 minutes of reading
APIs that we refer to as RESTful meet certain criteria, such as using HTTP as the primary means of communication and having structure and resources that can be referenced via URLs.
RESTful means that the API in question is fully compatible with the REST standard. The REST software development standard refers in particular to websites. In order to claim that the API we wrote meets the REST standards, it must meet the following requirements in practice:
- Unique methods by which it queries the API such as GET, PUT, DELETE, PATCH defined as a unified interface.
- The given query is independent of the state of the application, it always returns the same thing, i.e. if we ask for a resource with ID=1 in the API then regardless of whether we are user A or B we should get the same thing
- The API returns messages about whether the query was successful or returned an error. The API should indicate exactly what the error was.
- The query to the API should explicitly state what type of resource it is querying, and for book querying we will use a different one
- The client does not directly interact with the server's resources in any way
- Ability to use cache. The API must return information whether the resource is stored and whether it can be stored
It is worth remembering that REST is not the same as HTTP, and also REST does not impose in any way the type of data that is returned from the API. It can be either JSON or plain text.
What a REST query to the API looks like
Each API query should have the following elements:
- Endpoint name
- Type of method
- Headers
- Data
An example query of type GET would be
curl -H "Authorization: OAuth <ACCESS_TOKEN>" http://www.example.com/users/2
Practical RESTful tips
There are a lot of generalities about RESTful APIs, but it's hard to find good resources on what to do to actually make our APIs meet REST standards.
URL construction in a RESTful API
One of the most important things is the construction of the URL. The url should have:
- use only lowercase letters
- use a hyphen ( - ) instead of an underline ( _ )
- do not add the return data type to our url, instead you should use Content-Type in the header
- use plural in the name for collection names, e.g. /books/
- use singular for document names, e.g. /books/sciencefiction/
- do not use create, delete methods in the name e.g. it is a mistake to make /deletebook/
- we can version and should add the main api version to the name e.g. /v1/books/
Returned response codes
The API should return response codes. The standard is responses containing error codes numbered from 2xx, 3xx, 4xx, 5xx. All but responses in the 200 group mean that there is an error in our API.
Our offer
Web development
Find out moreMobile development
Find out moreE-commerce
Find out moreUX/UI Design
Find out moreOutsourcing
Find out moreRelated articles
The Manifest Names Boring Owl as one of the Most-Reviewed UX Agencies in Warsaw
22 Jul 2024
When introducing a new digital product or solution, focusing on User Experience (UX) can significantly set you apart from the competition.
Website redesign vs. refresh: Evaluating the benefits and drawbacks
11 Jul 2024
In an ever-evolving digital landscape, businesses are constantly called to re-evaluate their online presence. The dilemma often lies in the decision between a complete website redesign or a website refresh. Both actions present unique benefits and challenges. This article aims to dissect these options, highlighting their advantages and disadvantages to better inform your next digital strategy.
How to incorporate machine learning into e-commerce platform
11 Jul 2024
E-commerce thrives on delivering personalized experiences to customers. Harnessing the power of Machine Learning (ML) can redefine these experiences, by predicting user behavior, tailoring recommendations and automating tasks. In this article, we explore the integration of ML into your E-Commerce platform and unveil its transformative potential.
How colours influence website perception?
10 Jul 2024
Bright red sales sign, soothing blue blog post, or an enigmatic black homepage, colors speak volumes in web design. The psychology of colors plays a critical role in how users perceive websites, influencing their actions and decisions subtly shaping the online experience. Let's delve into understanding this colored web of psychology.
Navigating App Development: Web, Mobile or Hybrid?
10 Jul 2024
Embarking on the journey of app development often comes with a critical decision: Web, Mobile, or Hybrid? Each offers unique benefits and challenges, suited to different project demands and goals. This article attempts to navigate through this complex landscape, offering insights to make the best choice.
Crucial role of interruption testing
9 Jul 2024
The rise of digital applications in today's fast-paced world undeniably rests on their performance. But when apps stutter or crash, the culprit can often be traced back to unanticipated interruptions. Understanding this, we delve into the world of 'Interruption Testing', an unsung hero in app performance optimization, which challenges the robustness of applications in the face of unprecedented events and interruptions.
React Native vs Flutter: A comprehensive guide on mobile app development technologies
9 Jul 2024
In the era of mobile app development, choosing the right tech stack becomes crucial. React Native and Flutter, raise as frontrunners with their unique offerings. This article offers an in-depth comparison between the two, aiding you in making informed development decisions.
Show all articles