When testing out ideas for the front end I often have to copy over the entire backend in ROR (which is convenient) but rather memory intensive.
So I came across this “workaround” that allows for the creation of a local rest API.
So the steps are so :
- install the json-server
npm install -g json-server
This is important as a step & you should ensure that json-server -v
(in my case it returns 0.16.3) returns some output to ensure that json-server is actually installed. I followed some online examples and they did not do a good job of explaining that & for those reasons I could not even get json-server started.
- create your seed data
Firstly create your db file, calling it db.json
and you can enter text using any text editor, some people recommend nano or pico so
pico db.json
. Once you have the editor up enter the following data in the following format
{API_URL_KEYWORD
:
[
ARRAY_OF_DATA_FIELDS_&_VALUES
]
}
The API_URL_KEYWORD
is what you use when you are accessing your API : http://localhost:PORTNUMBER/API_URL_KEYWORD
As for ARRAY_OF_DATA_FIELDS_&_VALUES
they are formatted so:
{
FIELD_1
:
FIELD_1_VALUE
,
FIELD_2
:
FIELD_2_VALUE
,
.
.
.
FIELD_N
:
FIELD_N_VALUE
,
}
So an example of the above is so:
{
"wordlist"
:
[
{
"id"
:
1
,
"word"
:
"Avalon"
,
"definition"
:
"Bucolic paradisical place."
}
,
{
"id"
:
2
,
"word"
:
"Arthur"
,
"definition"
:
"Monarch."
}
]
}
Following is how seed data works in my file db.json
: you have to put a carriage return or end of line after every field or field value or delimiter.
Once you are done with this you can run your local API so:
json-server DB_FILE -p PORTNUMBER
In our case specifically it is:
json-server db.json -p 1111
So the screenshot of a running json-server looks so:
And the screenshot of a running api looks so :
And the entire src along with some references is here: src