Table of contents
- 1) What is a query parameter?
- 2) What is a Path Parameter?
- 3) What exactly is a request?
- 4) What is an endpoint?
- 5) What is this semver thingy?
1) What is a query parameter?
In a browser, typing a URL and pressing enter leads you to a webpage. In some cases, the URL needs to be modified with unique information from the user to get a specific response.
Consider a website that shows a list of movies, for example. Let's say the URL for this website is
movies.com. There will be a huge list of movies on such a website, so finding a specific movie will be difficult.
So let's say this website provides a search box to help with this.
In order for your entry to be processed, it needs to be sent back to the server. You can send back your search query by appending it to the URL as a query parameter.
This usually looks something like this
In the above URL, we took our initial URL
movie.com and appended
?title=avengers to it. Most web servers are set up to understand that the
pair after the
? is a special combo, of an expected key in this case title and a value being what the user will like to search for.
This is then relayed to the web application to interpret as "A user just filled out the value of
avengers what do you want to do?"
The web application knows to send back movies with a title similar to
Also, you can pass as many query parameters as the web application allows. For example, to query by the "title", "year", and "rating", this would be
movie.com?title=avenger&year=2020&rating=3. Each complete query is separated by the
In summary instead of getting the same content over and over when you visit a website, query parameters allow you to tweak the output based on your input.
2) What is a Path Parameter?
Path Parameters aim to achieve the same thing as query parameters, in that it allows you to send information to a web application by appending them to the URL. The main difference between a path parameter and a query parameter is in the structure of the resulting URL. For example, to search for a movie with the
avengers, the URL will be
movie.com?title=avengers in query parameter form but
movie.com/title/avengers in path parameter form.
As you can see path parameters uses the
/ symbol to pass data to the web application. This makes it look a lot more natural and similar to the URLs we are used to.
I should mention that there are other ways to pass data to the server without modifying the URL.
Most online forms use the
POST method to submit data to the server. This involves the use of a different URL so the user won't notice a change in the original URL in their browser's URL bar.
3) What exactly is a request?
There are loads of computers hooked up to the internet known as servers. The job of these computers is to serve up data and perform actions when a user asks for them. The process of asking for them is known as making a request. There are different and many ways to make a request to a server and the one you use sometimes depends on the kind of action you are trying to perform.
A request is made when you visit a URL in your browser, for example, So when you type
facebook.com in your browser and hit enter you have performed a request.
Similarly, when you fill out a form and submit you perform a request but the structure of this request is a bit different from the former.
In software development land you will hear phrases such as "the frontend made a request to the server". Humans are not the only ones who make requests, computers can make requests to other computers as well.
For example, some developers separate the user interface of an application from the backend of the same software, and for both parts of the software to communicate the frontend must send and request data from the backend.
You can also use tools such as Postman [↗] to make requests to APIs.
4) What is an endpoint?
I will try my best to explain this one. Honestly, this term has been thrown around soo many times. APIs represent every component involved in the process of sending and fetching data from a server, an endpoint is one of such components, specifically the exact URL you hit to perform a specific action.
So for example let's say you need to hit the URL
movie.com/latest to get back the list of latest movies and
movie.com/old to get the list of old movies.
In this case the base URL is
movie.com in both examples. And the endpoints are
/old. So you will hear software professionals ask one another "what is the endpoint for getting the list of subscribers?" and get back a response like "oh its /subscribers"
5) What is this semver thingy?
Versioning!!, Let's talk about versioning.
This is a key part of any constantly evolving piece of software. With versioning, software teams can tag/mark each stage of the evolution of a software system using a versioning system and one of such schemes is Semver.
Semver fully expands to Semantic versioning. Anything to do with semantics is meant to denote structure. Here it refers to the use of a pattern to track software changes.
Any piece of software goes through three types of changes or growth:
- Fixes for broken parts of the software.
- Changes to improve already functioning parts of the software
- And feature additions that lead to software growth
Whenever an end-user updates the version of the software they are using, they need to know if it will function as it used to or if major changes were made.
One way to capture that is by using Semver versioning. In the case of Semver versioning, a 3 part numeric structure is used in the versioning structure, something like this
The leading number is the Major index, this is increased if the changes made to the software are not compatible with a previous version of the software. This means the end-user will not be able to merge the changes into their existing software.
The Second part is increased when the changes made affect or improve the current software and a user updating to that version will not lead to incompatibility issues. This part of the Semver versioning scheme is known as the Minor index.
In situations where a feature has been fixed, because it's not working as it should, the last part of the versioning scheme is increased once the fix is applied. This part of the Semver versioning scheme is known as the Patch index.
You can learn more about Semver and its usefulness in software development from its official website [↗].
Here is another article you might like 😊 "Curl for technical writers"