Теперь, используя Visual Studio 17.5, вы можете протестировать наши конечные точки API с помощью Visual Studio.
Начнем с практической реализации.
Шаг 1
Создайте новый проект веб-API .NET Core.
Шаг 2
Внутри нового проекта создайте один контроллер API и разные конечные точки, которые мы собираемся протестировать с помощью файла HTTP.
using Microsoft.AspNetCore.Mvc; using RudderStackDemo.Entities; using RudderStackDemo.Repositories; namespace RudderStackDemo.Controllers { [Route("api/[controller]")] [ApiController] public class ProductsController : ControllerBase { private readonly IProductService _productService; public ProductsController(IProductService productService) { _productService = productService; } /// <summary> /// Product List /// </summary> /// <returns></returns> [HttpGet] public async Task<IActionResult> ProductListAsync() { var productList = await _productService.ProductListAsync(); if (productList != null) { return Ok(productList); } else { return NoContent(); } } /// <summary> /// Get Product By Id /// </summary> /// <param name="productId"></param> /// <returns></returns> [HttpGet("{productId}")] public async Task<IActionResult> GetProductDetailsByIdAsync(int productId) { var productDetails = await _productService.GetProductDetailByIdAsync(productId); if (productDetails != null) { return Ok(productDetails); } else { return NotFound(); } } /// <summary> /// Add a new product /// </summary> /// <param name="productDetails"></param> /// <returns></returns> [HttpPost] public async Task<IActionResult> AddProductAsync(ProductDetails productDetails) { var isProductInserted = await _productService.AddProductAsync(productDetails); if (isProductInserted) { return Ok(isProductInserted); } else { return BadRequest(); } } /// <summary> /// Update product details /// </summary> /// <param name="productDetails"></param> /// <returns></returns> [HttpPut] public async Task<IActionResult> UpdateProductAsync(ProductDetails productDetails) { var isProductUpdated = await _productService.UpdateProductAsync(productDetails); if (isProductUpdated) { return Ok(isProductUpdated); } else { return BadRequest(); } } /// <summary> /// Delete product by id /// </summary> /// <param name="productId"></param> /// <returns></returns> [HttpDelete] public async Task<IActionResult> DeleteProductAsync(int productId) { var isProductDeleted = await _productService.DeleteProductAsync(productId); if (isProductDeleted) { return Ok(isProductDeleted); } else { return BadRequest(); } } } }
Шаг 3
Щелкните правой кнопкой мыши имя проекта в решении и добавьте файл API-Test.http в свой проект.
Шаг 4
Добавьте различные запросы конечной точки HTTP в файл HTTP.
GET https://localhost:7178/api/Products ### @productId = 2 GET https://localhost:7178/api/Products/{{productId}} ### POST https://localhost:7178/api/Products Content-Type application/json { "id": 3, "productName": "Laptop", "productDescription": "HP Pavilion", "productPrice": 80000, "productStock": 10 } ### PUT https://localhost:7178/api/Products Content-Type application/json { "id": 3, "productName": "Laptop", "productDescription": "DELL", "productPrice": 80000, "productStock": 10 } ### DELETE https://localhost:7178/api/Products?productId=1ht
Шаг 5
Теперь вы можете выполнить отдельную конечную точку API после нажатия кнопки запуска, соответствующей каждому запросу, как показано ниже.
GitHub-
https://github.com/Jaydeep-007/API_Test_Demo.git
Удачного обучения!