Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Building RESTful Web Services with .NET Core
Building RESTful Web Services with .NET Core

Building RESTful Web Services with .NET Core: Developing Distributed Web Services to improve scalability with .NET Core 2.0 and ASP.NET Core 2.0

Arrow left icon
Profile Icon Bhattacharya Profile Icon Gaurav Aroraa Profile Icon Tadit Dash
Arrow right icon
Can$30.99 Can$44.99
Full star icon Full star icon Half star icon Empty star icon Empty star icon 2.7 (6 Ratings)
eBook May 2018 334 pages 1st Edition
eBook
Can$30.99 Can$44.99
Paperback
Can$55.99
Subscription
Free Trial
Arrow left icon
Profile Icon Bhattacharya Profile Icon Gaurav Aroraa Profile Icon Tadit Dash
Arrow right icon
Can$30.99 Can$44.99
Full star icon Full star icon Half star icon Empty star icon Empty star icon 2.7 (6 Ratings)
eBook May 2018 334 pages 1st Edition
eBook
Can$30.99 Can$44.99
Paperback
Can$55.99
Subscription
Free Trial
eBook
Can$30.99 Can$44.99
Paperback
Can$55.99
Subscription
Free Trial

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Table of content icon View table of contents Preview book icon Preview Book

Building RESTful Web Services with .NET Core

Building the Initial Framework – Laying the Foundation of the Application

In the last chapter, we talked about REST, its characteristics, and how it is implemented in ASP.NET Core. We will go ahead with that knowledge and set up the environment to develop an application in this chapter.

We will start building the basic framework of the app. We will understand each and every HTTP verb, how they work, and their implementation paradigms in ASP.NET Core Web API. Before all that, we will have a quick look at SOAP and how it is different from REST.

While we walk though the verbs, we will explore a very easy-to-use tool to analyze the HTTP requests and responses.

We will cover the following topics:

  • All about web services (REST and SOAP)
  • Running the development server
  • REST verbs and status codes
  • Implementation of verbs in ASP.NET Core Web API
  • Examples using Postman
  • SOAP versus...

SOAP

Simple Object Access Protocol (SOAP) is an XML-based messaging protocol for exchanging information among computers. SOAP relies on application layer protocols, most often Hypertext Transfer Protocol (HTTP) or Simple Mail Transfer Protocol (SMTP), for message negotiation and transmission. As we are talking about HTTP, which is installed and runs on every operating system, web services implementing SOAP can be called from any platform using any language.

SOAP structure

We already know that a SOAP message is an XML document, but let's have a better look by way of a diagram:

The following is a description of the components from the preceding diagram:

  • Envelope: Mandatory element of SOAP message structure. Defines the...

REST

REST is an architectural style for providing standards between computer systems on the web, so that systems can communicate with each other easily. Services compliant to the REST style are often called RESTful services.

Let's talk about a few important constraints of a web service when it is tagged as RESTful.

Server and client are independent

With REST, there is no restriction or dependency between server and client. Both can be independent of each other. It's just the URL by which the client understands the service. The code for a web service on a server can be modified without caring about the clients that are associated with it and vice versa.

This kind of separation helps the client/server architecture...

Setting up the environment

Before we explore the communication mechanism, let's first set up the development environment. We will use Visual Studio 2017 for our examples.

Open Visual Studio and undertake our favorite step, File | New | Project, which opens up a dialog window with available templates, as shown in the following screenshot:

Select ASP.NET Core Web Application as shown in the preceding screenshot. Don't forget to select .NET Core in the left-hand side panel. Everything looks cool now.

Let's click OK and then we will land on another dialog where we can select more templates related to our web app. Obviously, we will click on Web API and then click OK.

The project is created. Beautifully, it has crafted all the necessary components and created an example controller for us named ValuesController as shown in the following screenshot:

Now, here is one...

SOAP versus REST

Following are some key differences between SOAP and REST:

SOAP
REST
It is an XML-based message protocol. It is an architectural style.
WSDL is used for communication between client and server. XML or JSON is used to send and receive data between client and server.
Services are invoked by calling the RPC method. Services expose endpoints via URLs.
Response is easily readable by a human. Response is readable in the form of plain XML or JSON.
Data transfer occurs over HTTP. It leverages protocols such as SMTP, FTP, and so on. REST data transfer occurs over HTTP only.
It is difficult to call a SOAP service from JavaScript. It is very easy to call a REST service from JavaScript.

Single-page application model

Traditionally, in a web application, the client requests the server for a web page. Then, the server responds to the client with the requested HTML page after validating and authenticating the request, if necessary. The next request to the server might occur when a user hits some link on the page, submits a form, and so on. The server again processes the request and sends back the response with another HTML page.

Don't you think instead of getting the whole HTML page (which would be mostly the same look and feel as the last loaded page), we should just get the data we need and update the currently loaded page itself without posting back to the server? Yes, modern web development works in that regard. Today, we just need data from the server on demand using Ajax. After receiving the data, we will just update the UI with JavaScript or a client...

Service-oriented architecture

Like SPA, Web API plays an important role in service-oriented architecture (SOA). As the name suggests, it is an architecture methodology that deals with separation of responsibility from a business-oriented point of view into independent services. Often, these independent services or components can be designed using RESTful Web APIs.

Consider an e-commerce application that would have different components such as ordering, billing, payment processing, customer profile management, and so on. Each of these components has its own business logic and can be implemented independently.

The following diagram represents a pictorial view of such an application having independent components:

To make them independent, RESTful APIs can be exposed for these components, which can be easily consumed by any client/application including other components as well, as...

Summary

We started with some basic knowledge of SOAP and then we moved towards REST gradually.

This chapter shed some light on the fundamental REST building blocks and how they actually work. We explored the different status codes returned by widely used HTTP verbs.

To explore the request and response cycles of Web API, you can use Postman, where you not only have control over what is being sent and received, but also the ability to get code for different languages in order to consume the API.

ASP.NET Core attributes can be tied to controller action methods to make them more expressive and manageable in terms of routing and arguments.

Single-page applications can be easily designed using client-side technologies and consuming ASP.NET Core Web APIs so that pages can be updated as soon as responses are received to have a smooth user experience.

Web APIs can be plugged into the...

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Follow best practices and explore techniques such as clustering and caching to achieve a reactive, scalable web service
  • Leverage the .NET Framework to quickly implement RESTful endpoints.
  • Learn to implement a client library for a RESTful web service using ASP.NET Core.

Description

REST is an architectural style that tackles the challenges of building scalable web services. In today's connected world, APIs have taken a central role on the web. APIs provide the fabric through which systems interact, and REST has become synonymous with APIs. The depth, breadth, and ease of use of ASP.NET Core makes it a breeze for developers to work with for building robust web APIs. This book takes you through the design of RESTful web services and leverages the ASP.NET Core framework to implement these services. This book begins by introducing you to the basics of the philosophy behind REST. You'll go through the steps of designing and implementing an enterprise-grade RESTful web service. This book takes a practical approach, that you can apply to your own circumstances. This book brings forth the power of the latest .NET Core release, working with MVC. Later, you will learn about the use of the framework to explore approaches to tackle resilience, security, and scalability concerns. You will explore the steps to improve the performance of your applications. You'll also learn techniques to deal with security in web APIs and discover how to implement unit and integration test strategies. By the end of the book, you will have a complete understanding of Building a client for RESTful web services, along with some scaling techniques.

Who is this book for?

This book is intended for those who want to learn to build RESTful web services with the latest .NET Core Framework. To make best use of the code samples included in the book, you should have a basic knowledge of C# and .NET Core.

What you will learn

  • • Add basic authentication to your RESTful API
  • • Create a Carts Controller and Orders Controller to manage and process Orders
  • • Intercept HTTP requests and responses by building your own middleware
  • • Test service calls using Postman and Advanced REST Client
  • • Secure your data/application using annotations

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : May 31, 2018
Length: 334 pages
Edition : 1st
Language : English
ISBN-13 : 9781788296991
Vendor :
Microsoft
Languages :
Concepts :
Tools :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want

Product Details

Publication date : May 31, 2018
Length: 334 pages
Edition : 1st
Language : English
ISBN-13 : 9781788296991
Vendor :
Microsoft
Languages :
Concepts :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just Can$6 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just Can$6 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total Can$ 173.97
Building RESTful Web Services with .NET Core
Can$55.99
C# and .NET Core Test-Driven Development
Can$55.99
C# 7 and .NET Core 2.0 High Performance
Can$61.99
Total Can$ 173.97 Stars icon

Table of Contents

12 Chapters
Getting Started Chevron down icon Chevron up icon
Building the Initial Framework – Laying the Foundation of the Application Chevron down icon Chevron up icon
User Registration and Administration Chevron down icon Chevron up icon
Item Catalogue, Cart, and Checkout Chevron down icon Chevron up icon
Integrating External Components and Handling Chevron down icon Chevron up icon
Testing RESTful Web Services Chevron down icon Chevron up icon
Continuous Integration and Continuous Deployment Chevron down icon Chevron up icon
Securing RESTful Web Services Chevron down icon Chevron up icon
Scaling RESTful Services (Performance of Web Services) Chevron down icon Chevron up icon
Building a Web Client (Consuming Web Services) Chevron down icon Chevron up icon
Introduction to Microservices Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Half star icon Empty star icon Empty star icon 2.7
(6 Ratings)
5 star 16.7%
4 star 16.7%
3 star 0%
2 star 50%
1 star 16.7%
Filter icon Filter
Top Reviews

Filter reviews by




christophe Sep 24, 2024
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Hello, how to contact the authors because i meet some problem in the middle of the book .. Book is interesting and i would like to finish to read it , thanks a lot
Subscriber review Packt
John Aldrin Aug 13, 2018
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
I enjoyed this book
Amazon Verified review Amazon
Nilesh Mohite May 18, 2019
Full star icon Full star icon Empty star icon Empty star icon Empty star icon 2
I was anticipating some stuff like url filters and parameterization but you kept focusing on other stuff which can be found in other books or net.
Amazon Verified review Amazon
erik stroeken Jul 07, 2019
Full star icon Full star icon Empty star icon Empty star icon Empty star icon 2
Not explained: Best Practices, Paging on REST Interface, IQuaryable not explained, chapter Sequrity raises many queations, OData not mentioned. Some examples have ToList on SQL Queries much too early. Sorry, its not what I expected!
Amazon Verified review Amazon
Abhishek Jain Nov 26, 2019
Full star icon Full star icon Empty star icon Empty star icon Empty star icon 2
I am not sure if others have the same problem. Chapter 03 code sample does not runs. Also the book does not explains how to run the sample correctly
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.