What Is A Restful Web Service Microsoft
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Consume a RESTful spider web service
Download the sample
Integrating a web service into an application is a common scenario. This article demonstrates how to consume a RESTful web service from a Xamarin.Forms application.
Representational State Transfer (REST) is an architectural style for building web services. Residuum requests are made over HTTP using the same HTTP verbs that web browsers use to recollect web pages and to ship information to servers. The verbs are:
- Get – this operation is used to retrieve data from the web service.
- Postal service – this operation is used to create a new item of data on the web service.
- PUT – this operation is used to update an item of information on the web service.
- PATCH – this functioning is used to update an particular of data on the web service by describing a set of instructions almost how the item should exist modified. This verb is not used in the sample application.
- DELETE – this functioning is used to delete an item of information on the web service.
Web service APIs that adhere to Residual are chosen RESTful APIs, and are divers using:
- A base URI.
- HTTP methods, such as Get, Mail service, PUT, PATCH, or DELETE.
- A media type for the information, such as JavaScript Object Notation (JSON).
RESTful web services typically use JSON messages to render information to the client. JSON is a text-based data-interchange format that produces compact payloads, which results in reduced bandwidth requirements when sending data. The sample application uses the open up source NewtonSoft JSON.Net library to serialize and deserialize messages.
The simplicity of REST has helped arrive the primary method for accessing spider web services in mobile applications.
When the sample application is run, it will connect to a locally hosted REST service, as shown in the following screenshot:
Note
In iOS 9 and greater, App Transport Security (ATS) enforces secure connections betwixt internet resources (such as the app'south dorsum-end server) and the app, thereby preventing accidental disclosure of sensitive information. Since ATS is enabled by default in apps built for iOS 9, all connections volition be subject to ATS security requirements. If connections do not meet these requirements, they volition fail with an exception.
ATS tin can be opted out of if it is not possible to employ the HTTPS protocol and secure communication for cyberspace resources. This can be achieved by updating the app's Info.plist file. For more information see App Send Security.
Eat the web service
The REST service is written using ASP.NET Core and provides the following operations:
Operation | HTTP method | Relative URI | Parameters |
---|---|---|---|
Become a list of to-practise items | Become | /api/todoitems/ | |
Create a new to-do detail | Postal service | /api/todoitems/ | A JSON formatted TodoItem |
Update a to-practise detail | PUT | /api/todoitems/ | A JSON formatted TodoItem |
Delete a to-do particular | DELETE | /api/todoitems/{id} |
The majority of the URIs include the TodoItem
ID in the path. For example, to delete the TodoItem
whose ID is 6bb8a868-dba1-4f1a-93b7-24ebce87e243
, the client sends a DELETE request to http://hostname/api/todoitems/6bb8a868-dba1-4f1a-93b7-24ebce87e243
. For more information nearly the data model used in the sample application, run across Modeling the information.
When the Web API framework receives a request it routes the request to an action. These deportment are simply public methods in the TodoItemsController
class. The framework use routing middleware to lucifer the URLs of incoming requests and map them to deportment. Balance APIs should apply aspect routing the model the app's functionality as a set of resources whose operations are represented by HTTP verbs. Aspect routing uses a set of attributes to map deportment directly to road templates. For more information about attribute routing, see Aspect routing for REST APIs. For more than information about edifice the Residuum service using ASP.Cyberspace Core, see Creating Backend Services for Native Mobile Applications.
The HttpClient
class is used to send and receive requests over HTTP. It provides functionality for sending HTTP requests and receiving HTTP responses from a URI identified resource. Each request is sent equally an asynchronous functioning. For more information about asynchronous operations, see Async Support Overview.
The HttpResponseMessage
class represents an HTTP response message received from the web service subsequently an HTTP request has been made. It contains information almost the response, including the status lawmaking, headers, and whatever trunk. The HttpContent
class represents the HTTP body and content headers, such as Content-Type
and Content-Encoding
. The content can be read using any of the ReadAs
methods, such every bit ReadAsStringAsync
and ReadAsByteArrayAsync
, depending upon the format of the information.
Create the HTTPClient object
The HttpClient
example is declared at the class-level and so that the object lives for equally long as the awarding needs to make HTTP requests, as shown in the post-obit code example:
public class RestService : IRestService { HttpClient client; ... public RestService () { client = new HttpClient (); ... } ... }
Retrieve data
The HttpClient.GetAsync
method is used to send the Get request to the web service specified past the URI, and then receive the response from the spider web service, equally shown in the following code example:
public async Chore<Listing<TodoItem>> RefreshDataAsync () { ... Uri uri = new Uri (string.Format (Constants.TodoItemsUrl, string.Empty)); ... HttpResponseMessage response = look client.GetAsync (uri); if (response.IsSuccessStatusCode) { cord content = wait response.Content.ReadAsStringAsync (); Items = JsonSerializer.Deserialize<List<TodoItem>>(content, serializerOptions); } ... }
The REST service sends an HTTP status code in the HttpResponseMessage.IsSuccessStatusCode
belongings, to point whether the HTTP request succeeded or failed. For this operation the Residuum service sends HTTP status lawmaking 200 (OK) in the response, which indicates that the request succeeded and that the requested information is in the response.
If the HTTP operation was successful, the content of the response is read, for display. The HttpResponseMessage.Content
property represents the content of the HTTP response, and the HttpContent.ReadAsStringAsync
method asynchronously writes the HTTP content to a string. This content is then deserialized from JSON to a List
of TodoItem
instances.
Warning
Using the ReadAsStringAsync
method to retrieve a large response can accept a negative performance impact. In such circumstances the response should be directly deserialized to avoid having to fully buffer information technology.
Create information
The HttpClient.PostAsync
method is used to transport the Postal service request to the web service specified past the URI, and then to receive the response from the web service, as shown in the following lawmaking example:
public async Task SaveTodoItemAsync (TodoItem item, bool isNewItem = false) { Uri uri = new Uri (string.Format (Constants.TodoItemsUrl, cord.Empty)); ... string json = JsonSerializer.Serialize<TodoItem>(detail, serializerOptions); StringContent content = new StringContent (json, Encoding.UTF8, "application/json"); HttpResponseMessage response = null; if (isNewItem) { response = wait client.PostAsync (uri, content); } ... if (response.IsSuccessStatusCode) { Debug.WriteLine (@"\tTodoItem successfully saved."); } ... }
The TodoItem
instance is serialized to a JSON payload for sending to the web service. This payload is so embedded in the body of the HTTP content that volition be sent to the spider web service before the asking is made with the PostAsync
method.
The REST service sends an HTTP condition lawmaking in the HttpResponseMessage.IsSuccessStatusCode
belongings, to indicate whether the HTTP request succeeded or failed. The common responses for this operation are:
- 201 (CREATED) – the request resulted in a new resource beingness created before the response was sent.
- 400 (BAD Request) – the request is non understood by the server.
- 409 (CONFLICT) – the asking could non be carried out considering of a conflict on the server.
Update data
The HttpClient.PutAsync
method is used to ship the PUT request to the web service specified by the URI, and and then receive the response from the web service, as shown in the post-obit code example:
public async Task SaveTodoItemAsync (TodoItem item, bool isNewItem = imitation) { ... response = wait client.PutAsync (uri, content); ... }
The operation of the PutAsync
method is identical to the PostAsync
method that'south used for creating information in the spider web service. However, the possible responses sent from the spider web service differ.
The REST service sends an HTTP condition code in the HttpResponseMessage.IsSuccessStatusCode
holding, to indicate whether the HTTP request succeeded or failed. The common responses for this performance are:
- 204 (NO CONTENT) – the request has been successfully processed and the response is intentionally bare.
- 400 (BAD REQUEST) – the request is not understood by the server.
- 404 (Not FOUND) – the requested resource does not exist on the server.
Delete data
The HttpClient.DeleteAsync
method is used to send the DELETE request to the web service specified past the URI, and and then receive the response from the web service, every bit shown in the following code instance:
public async Chore DeleteTodoItemAsync (cord id) { Uri uri = new Uri (string.Format (Constants.TodoItemsUrl, id)); ... HttpResponseMessage response = look customer.DeleteAsync (uri); if (response.IsSuccessStatusCode) { Debug.WriteLine (@"\tTodoItem successfully deleted."); } ... }
The REST service sends an HTTP status lawmaking in the HttpResponseMessage.IsSuccessStatusCode
holding, to indicate whether the HTTP request succeeded or failed. The common responses for this operation are:
- 204 (NO CONTENT) – the request has been successfully processed and the response is intentionally bare.
- 400 (BAD REQUEST) – the request is not understood by the server.
- 404 (Not FOUND) – the requested resource does non exist on the server.
Local evolution
If yous are developing your Rest web service locally with a framework such as ASP.Net Core Web API, you can debug your web service and mobile app at the same time. In this scenario yous must enable clear-text HTTP traffic for the iOS simulator and Android emulator. For information most configuration your projection to allow advice, run into Connect to local spider web services.
- Microsoft Learn: Eat REST spider web services in Xamarin Apps
- Microsoft Acquire: Create a spider web API with ASP.Cyberspace Core
- Creating Backend Services for Native Mobile Applications
- Attribute routing for REST APIs
- TodoREST (sample)
- HttpClient API
- Android Network Security Configuration
- iOS App Send Security
- Connect to local web services
Feedback
Submit and view feedback for
What Is A Restful Web Service Microsoft,
Source: https://docs.microsoft.com/en-us/xamarin/xamarin-forms/data-cloud/web-services/rest
Posted by: beckhamknestagave.blogspot.com
0 Response to "What Is A Restful Web Service Microsoft"
Post a Comment