有人可以向我解释一下 Web 服务和 Web API 之间的区别吗?我浏览了很多博客,但它们似乎都使用相同的书本知识。它们之间的实际区别是什么?
正如@Dai所解释的那样,我完全同意他的观点。另外,我还想给大家提供一些现实生活中的差异。
网络服务:
与
Web Service
一样,基本上使用 WSDL
来与 SOAP
或 XML
基础服务进行通信。然而,Web Service
中的主要挑战是处理跨平台请求。我们过去在开发Web Services时添加服务引用的方式如下:
网络API:
考虑到这些缺点,微软后来更具体地开发了
Web API
:Asp.net Web API
,它为使用REST模式的跨平台开发提供了强大的功能,主要使用Json
数据。这并不意味着web service
不能做到这一点,但不像现在的Web API
那么强大。与Web服务不同的是,我们不需要像上面那样经历任何集成麻烦,我们可以直接使用Asp.net core项目进行开发,并且可以打开从任何地方调用的路线。例如下面的例子..
[ApiController]
[Route("api/VehicleFilter")]
public class VehicleFilterController : ControllerBase
{
private readonly ApplicationDbContext _context;
private readonly IWebHostEnvironment _environment;
public VehicleFilterController(IWebHostEnvironment environment, ApplicationDbContext context)
{
_environment = environment;
_context = context;
}
[HttpGet]
public async Task<IActionResult> GetAllFilter()
{
string VehicleName = "Hatchback";
var sqlCommand = $"EXEC GetVehicleByTile {VehicleName}";
var vehicleFilterValues = await _context.VehicleFilter.FromSqlRaw(sqlCommand).ToListAsync();
return Ok(vehicleFilterValues);
}
}
总而言之,
Web API
提供了更大的灵活性和鲁棒性,当然,在编写任何新方法时也是轻量级的。其中 web service
会给开发商带来一些缺点。