Define the resource
In REST (an acronym for Representational State Transfer), a resource is defined as a piece of data that can be accessed using a unique URI (Uniform Resource Identifier). Typically, the resource is described using a model object. In this example, our resource will be an instance of the Article class.
In the project we just created, create a new file named Article.cs and write the following code in there to create our resource type.
public class Article
   {
       public int Id { get; set; }
       public string Title { get; set; }
       public string Description { get; set; }
       internal readonly string Author;
   }
Create a repository for the resource
In an ASP.NET Core application a repository is used to provide access to the data store. In this example, we’ll create an article repository that consists of two types — the IArticleRepository interface and the ArticleRepository class that implements this interface.
Create an interface named IArticleRepository in a file having the same name with a .cs extension and replace the default generated code with the following code.
public interface IArticleRepository
   {
       public Article GetArticle(int id);
       public List GetArticles();
   }
Next create the ArticleRepository class. The ArticleRepository class implements the methods of the IArticleRepository interface as shown in the code snippet given below.
public class ArticleRepository : IArticleRepository
   {
       public Article GetArticle(int id)
       {
           throw new NotImplementedException();
       }
       public List GetArticles()
       {
           throw new NotImplementedException();
       }
   }
Register the repository in the Program.cs file
You should now register the ArticleRepository class as a service using the following line of code in the Program.cs file.