Skip to main content

Rails API creating a simple REST service



The first thing you need to do is

1. gem install rails-api

2. create your new rails api application by issuing the following command

 rails-api new RailApi

Here, we have just created a new application called RailApi. This has more or less the same structure with traditional rails based application

3. cd RailApi

4. Lets create our REST service'. We begin by creating a user controller and its model.

rails g scaffold User name email

If you goto db/migrate, you will see a file called user followed by some date. It should has the following contents :-




4. Add active_model_serializer to our gem file, as shown here.

gem 'active_model_serializer'

5. And run "bundle install"

6. Create its serializer

rails g serializer user name email

This will generate the files as follows :-



7. Lets update our database by issuing rake command

rake db:migrate

If will go ahead and creates all the required table for our application

8. Lets start our server by issuing :- rails server

9. We need to setup some test data by going into rails console.

Execute rails console, and create some fake data

10. Lets try to retrieve our data by typing the following in our brower

http://localhost:3000/users

and

http://localhost:3000/users/1

Noticed that Rails automatically gives a plural version of the model that we wanted to create.

It should have your data returned as json format.

Comments

Popular posts from this blog

Android Programmatically apply style to your view

Applying style to your view (button in this case) dynamically is pretty easy. All you have to do is place the following in your layout folder (res/layout)
Let's call this file : buttonstyle.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" > <shape> <solid android:color="#449def" /> <stroke android:width="1dp" android:color="#2f6699" /> <corners android:radius="3dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> <item> <shape> <gradient android:startColor="#449def" a…

DataTable does not have AsEnumerable

I have problem locating my AsEnumerable extension method in my DataTabe (System.Data). Thank god for this post by Angel
(http://blogs.msdn.com/angelsb/archive/2007/02/23/does-not-contain-a-definition-for.aspx)

I was able to find this method once i have added reference to the following assembly.

C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Data.DataSetExtensions.dll

Try to do a dummy Build and you should be able to get it.

OpenCover code coverage for .Net Core

I know there are many post out there getting code coverage for .dotnetcore. I'm using opencover to address this needs.

In case, you do no want to use opencover and wanted to stick with vs2015 code coverage, you can try to copy Microsoft.VisualStudio.CodeCoverage.Shim.dll from C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Dynamic Code Coverage Tools\coreclr\ and drop it into your project "bin\Debug\netcoreapp1.0" folder.  Please note : you need to be on VS2015 Enterprise to do this. 

To get started, I guess we need to add OpenCover and ReportGenerator for our test projects, as shown in diagram below :-



When nuget packge gets restored, we will have some binaries downloaded to our machine and we going to use this to generate some statistics. I think the biggest issue is to getting those command lines work.

In dotnetcore, we run test project using "dotnet test" (assuming you are in the test project folder - if not please go there)  So we add this …