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); } コントロ