C#Asp.Net WebAPIをテストするにはどうすればよいですか?
WebApiのテストには、要求の送信と応答の受信が含まれます。 WebApiをテストする方法はいくつかあります。ここでは、postmanとswaggerを使用してWebApiをテストします。以下のようなStudentControllerを作成しましょう。
学生モデル
namespace DemoWebApplication.Models{ public class Student{ public int Id { get; set; } public string Name { get; set; } } }
学生コントローラー
例
using DemoWebApplication.Models; using System.Collections.Generic; using System.Linq; using System.Web.Http; namespace DemoWebApplication.Controllers{ public class StudentController : ApiController{ List<Student> students = new List<Student>{ new Student{ Id = 1, Name = "Mark" }, new Student{ Id = 2, Name = "John" } }; public IEnumerable<Student> Get(){ return students; } public Student Get(int id){ var studentForId = students.FirstOrDefault(x => x.Id == id); return studentForId; } } }
Swaggerを使用したテスト
Swaggerは、RESTAPIを文書化するための仕様です。これは、REST Webサービスを記述するための形式(URL、メソッド、および表現)を指定します。メソッド、パラメーター、モデルの説明はサーバーコードに緊密に統合されているため、APIとそのドキュメントの同期が維持されます。
このアプリケーションでは、ManageNugetパッケージを使用してSwaggerをインストールします。
WebApiプロジェクトを実行し、 swagger / ui / indexと入力します URLで。
スワッガーは、以下のようにコントローラーとそのアクションメソッドを自動的に一覧表示します。それぞれのコントローラーを拡張し、リクエストを使用してエンドポイントをテストできます。
すべての生徒のリクエストを取得
すべての生徒の回答を得る
学生にIDリクエストを依頼する
生徒にID応答を依頼する
Postmanを使用したテスト
Postmanは人気のあるAPIクライアントであり、開発者がAPIを簡単に作成、共有、テスト、文書化できるようにします。これは、ユーザーが単純で複雑なHTTP / s要求を作成および保存し、応答を読み取ることを可能にすることによって行われます。その結果、より効率的で面倒な作業が減ります。 Postmanは、アプリケーションとしてインストールすることも、以下のような送信ブラウザにすることもできます。
すべての生徒のリクエストと応答を取得する
生徒にIDのリクエストと応答を依頼する
-
C#ASP.NET WebAPIでCORSの問題を解決するにはどうすればよいですか?
クロスオリジンリソースシェアリング (CORS)は、追加のHTTPヘッダーを使用して、あるオリジンで実行されているWebアプリケーションに、別のオリジンから選択されたリソースへのアクセスを許可するようにブラウザーに指示するメカニズムです。 Webアプリケーションは、自身とは異なるオリジン(ドメイン、プロトコル、またはポート)を持つリソースを要求すると、クロスオリジンHTTPリクエストを実行します。 たとえば、フロントエンド(UI)とバックエンド(サービス)を持つアプリケーションについて考えてみましょう。フロントエンドがhttps://demodomain-ui.comから提供されているとしま
-
C#ASP.NET WebAPIのアクションメソッドからカスタム結果タイプを返す方法は?
IHttpActionResultインターフェイスを実装することで、結果タイプとして独自のカスタムクラスを作成できます。 。 IHttpActionResultには、HttpResponseMessageインスタンスを非同期的に作成する単一のメソッドExecuteAsyncが含まれています。 public interface IHttpActionResult { Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken); } コントロ