Introduction
In this article, you will see how to easily create your own REST API server to be accessible on the internet without coding and without the need of hosting it on any hosting provider.
So let's get started
Setup local environment
- Create a new folder with the name
users-api-server
. - Navigate inside the folder from the command line and execute the following command
npm init -y
This will create a package.json
file inside your project.
- Install the
json-server
npm package by executing the following command
npm install json-server
Create a new file with the name
.gitignore
with the entry fornode_modules
inside it so thenode_modules
folder will not be pushed to GitHub while pushing the code to the GitHub repository.Create a new file with the name
db.json
and add the following contents inside it:
{
"users": [
{
"id": 1,
"name": "David",
"age": 30
},
{
"name": "John",
"id": 2,
"age": 40
}
]
}
- Open
package.json
file and add thescripts
section inside it:
"scripts": {
"start": "json-server db.json"
}
Now, start the application by running the
npm start
command from the terminal.You will see the following screen when you access it at http://localhost:3000/
- If you click the
/users
link under theresources
section, you will see the following screen
Tip: To get the nice formatted JSON output as shown above, install the JSON Formatter browser extension
Congratulations! you've just written your own REST API server without writing a single line of code
Now we can make
GET
,POST
,PUT
,PATCH
andDELETE
API calls to our own API.
Making Get API request to get all users
Making POST API request to add a new user
Making PUT API request to update a user
Making DELETE API request to delete a user
Save the changes
Now, you've made some API calls to our application.
If you want to save the final result of those API calls, you can press the s
key from your keyboard and hit the enter
key which will save the snapshot of the changes in a separate file as can be seen in the terminal.
Deploy the application
Deploying the application which uses json-server
is very easy.
You just have to create a GitHub repository and push your local changes to that repository and access it with a specific URL from the browser.
Follow the following steps to do it:
- Navigate to this url to create a new GitHub repository
- Enter the name of the repository you want, make it public and click on the
Create repository
button
- You will see the following screen
- Copy the URL which says
git remote add
- Now open terminal in your project and first execute
git init .(git init dot)
command and then paste the copied URL in the last step and press enter
- These two commands will make your project a git repository and point your local git repository to GitHub
-
So now we can push the changes to GitHub by executing the following commands in sequence
- git add --all .
- git commit -m "your_commit_message"
- git push origin master
Once the changes are pushed to the repository you can access your
json-server
by navigating tohttps://my-json-server.typicode.com/your_github_username/your_repository_name
for example https://my-json-server.typicode.com/myogeshchavan97/users-api
That's it! You have deployed your API live to the web so anyone can use your API now.
Deployed live
Complete API
Users API
Note: To deploy the
json-server
live as we have seen, you actually only needdb.json
file in your project. There is no need of installing thejson-server
npm package locally inside thepackage.json
file.
We installed it locally so we can test our API locally before making it live.
The beauty of using json-server
is that, when you access your API using https://my-json-server.typicode.com/
URL, it does not change your original db.json
file. So each user will get the same copy of db.json
API.
Only when you test locally using json-server
, original db.json
file will be modified.
To learn more about json-server
click here
Conclusion
As you have seen, by creating only db.json
file inside the project folder and providing JSON object structure in that file, you can create your own REST API server available live on the internet without even the need for hosting it.
You can find the complete source code for this application here.
Don't forget to subscribe to get my weekly newsletter with amazing tips, tricks and articles directly in your inbox here.
Top comments (22)
Insightful
Glad to hear that. Thank youš
nice
Thank you š
Feel free to use open source Postman alternative: Hoppscotch for testing APIs on-the-go directly from your browser window.
hoppscotch / hoppscotch
š½ Open source API development ecosystem - https://hoppscotch.io
why postman needs an alternative. - before opening url
[ after opening url]
awesome. I don't need postman anymore. your app is web based. big thing it is written in vue js. that's why will use
You should definitely read about why I started the Hoppscotch project:
I created Hoppscotch š½ - Open source API development ecosystem
Liyas Thomas ć» Aug 22 '19
Really Amazing. Now I have an extension. Good bye postman. Welcome to Hoppscotch.
hey. Your extension does not have support for edge
this is so slick. and i echo the others - crisp and clear writing man. thanks for writing this
Thank you so much :)
Hi, recently I discovered DevApiService. It's online tool for mockup API. You can make HTTP requests (GET, POST, PUT and DELETE) without limits and with token authorization than generate the platform.
Thanks for the clear and simple explaination, Yogesh.
Thank you :)
You can use json-server for hosting your API on production as I did in this article here.
Is there a way to add auth to it?
yes, you can add authentication using middleware like this:
Thanks, this was very beautiful
Thank you š
Thanks, very helpful.
Thank you :)