Demonstrates Model Serializing for rails
APIs differentiated by versions.
The project have been implemented to serve versioned APIs in ruby on rails framework.
It serves serialize data objects over the network by active_model_serializers
gem.
To setup project locally, follow below instructions.
Have ruby version ruby-2.7.1 installed as mentioned in Gemfile.
Install necessary dependencies.
# install dependencies mentioned in Gemfile
$ bundle install
# verification of already installed files in node_modules
$ yarn install --check-files
Create and Initialize database.
# migration of database
$ rails db:migrate
# initialization of database with data
# defined in seed file
$ rails db:seed
To start the server on localhost run the command below. The server will start on default port 3000.
$ rails s
For different API versions, there would be different serializers being used implicitly. For which the output of some API endpoints are given below.
For http://localhost:3000/v1/employees
{
"data":[
{
"id":1,
"name":"Carley Lindgren",
"email":"[email protected]",
"designation":"voluptas",
"manager":{
"id":12,
"name":"Bethel Sanford"
}
}
],
"message":[
"Employee list fetched successfully"
],
"status":200,
"type":"Success"
}
For http://localhost:3000/v2/employees
{
"data":[
{
"id":1,
"name":"Carley Lindgren"
}
],
"message":[
"Employee list fetched successfully"
],
"status":200,
"type":"Success"
}
For http://localhost:3000/v1/managers
{
"data":[
{
"id":1,
"name":"Brandy Hahn PhD",
"employees":[
{
"id":15,
"name":"Louis Bayer",
"email":"[email protected]",
"designation":"non"
},
{
"id":35,
"name":"Stephnie Cronin PhD",
"email":"[email protected]",
"designation":"hic"
}
]
}
],
"message":[
"Manager list fetched successfully"
],
"status":200,
"type":"Success"
}
For http://localhost:3000/v2/managers
{
"data":[
{
"id":1,
"name":"Brandy Hahn PhD",
"employees":[
{
"id":15,
"name":"Louis Bayer"
},
{
"id":35,
"name":"Stephnie Cronin PhD"
}
]
}
],
"message":[
"Manager list fetched successfully"
],
"status":200,
"type":"Success"
}