首页 > 编程语言 >asp.net web api 接口内调用多个远程接口优化

asp.net web api 接口内调用多个远程接口优化

时间:2024-05-30 16:55:39浏览次数:21  
标签:web asp request 接口 shippingCostService tasks var public

提高查询速度的远程接口优化;

[ApiController]
[Route("[controller]")]
public class ShippingCostController : ControllerBase
{
    private readonly ShippingCostService _shippingCostService;

    public ShippingCostController(ShippingCostService shippingCostService)
    {
        _shippingCostService = shippingCostService;
    }

    [HttpPost("compare")]
    public async Task<ActionResult<List<ShippingCost>>> CompareShippingCosts([FromBody] ShippingRequest request)
    {
        // Create named tasks for each API call
        var upsTask = _shippingCostService.GetUPSShippingCost(request);
        var fedexTask = _shippingCostService.GetFedExShippingCost(request);
        var ryderTask = _shippingCostService.GetRyderShippingCost(request);
        var tntTask = _shippingCostService.GetTNTShippingCost(request);
        var expeditorsTask = _shippingCostService.GetExpeditorsShippingCost(request);
        var panalpinaTask = _shippingCostService.GetPanalpinaShippingCost(request);
        var unisTask = _shippingCostService.GetUnisShippingCost(request);

        // Add tasks to a list
        var tasks = new List<Task<ShippingCost>>
        {
            upsTask,
            fedexTask,
            ryderTask,
            tntTask,
            expeditorsTask,
            panalpinaTask,
            unisTask
        };

        // Execute all API calls concurrently
        var results = await Task.WhenAll(tasks);

        // Return the aggregated results
        return Ok(results.ToList());
    }
}

如果接口内,需要调用多个远程接口,可以让它们并发执行,提高查询效率;

 该代码由ai生成。

标签:web,asp,request,接口,shippingCostService,tasks,var,public
From: https://www.cnblogs.com/Tpf386/p/18222720

相关文章

  • 高德地图在web端的使用
    1、高德地图开放平台申请key和安全密钥 2、安装高德地图加载器使用npm 安装:npmi@amap/amap-jsapi-loader--save使用yarn 安装:yarnadd@amap/amap-jsapi-loader--save3、直接使用<template><divid="amapcontainer"style="width:800px;height:620px"></div......
  • asp.net web api 接口控制并发研究(临时性方法)
    有一个业务场景,接口的业务逻辑非常复杂,对数据库的压力比较大,希望限制下接口的并发数量,研究了下:usingMicrosoft.AspNetCore.Mvc;usingSystem.Collections.Concurrent;usingSystem.Threading.Tasks;namespaceTestBingFa.Controllers{[ApiController][Route("[c......
  • 回顾与前瞻:百度权重API接口的发展之路
     百度权重API接口是一个用于网站关键词排名的预估工具,可以帮助网站主预测他们的网站在百度搜索结果中的排名情况,并给出一个0到9的评估等级。本文将回顾一下百度权重API接口的发展历程,并展望一下未来可能的发展方向。百度权重API接口最早是由爱站、站长工具等网站推出的,旨在帮......
  • 关于PHP的webshell免杀小结
    0X00普通的一句话木马(适用于CTF和小站)<?phpeval($_POST['a']);?>//函数的相似替换<?phpassert($_POST['a']);?> <?php@eval($_POST['110']);?>与第一个一句话木马相比多了一个"@"字符,我们发现这个字符的含义是在php语法中表示抑制错误信息即使有错误也不返回;属于不......
  • 无法使用 COM 接口和 DLL 在 CANape 上开始测量
    我试图在CANoe开始运行时启动CANape上的测量。我试过以下方法:publicoverridevoidMain(){_application=newCANAPELib.ApplicationClass();_iApplication2=_application;_iMeasurement=_iApplication2.MeasurementasCANAPELib.IMeasurement;boolisRunning=......
  • Particles.js:为Web项目增添动态粒子效果
    Particles.js:为Web项目增添动态粒子效果示例介绍Particles.js是一个轻量级的JavaScript库,用于在Web页面上创建和管理动态粒子效果。它允许开发者通过简单的配置文件实现复杂的动画效果,为网页增添视觉吸引力。粒子可以是点、线、图像等,能够根据用户交互进行动态变化,Particles.......
  • 如何隐藏 Firefox 窗口(Selenium WebDriver)?
    在Python中使用SeleniumWebDriver隐藏Firefox窗口通常涉及到配置FirefoxOptions来禁用其图形界面的显示。以下是一个详细的步骤和代码示例:1.首先,确保你已经安装了selenium库,以及geckodriver(适用于Firefox浏览器)。如果还没有安装,可以通过pip进行安装:```bashpipinstallsel......
  • Java中Comparable接口和Comparator接口的区别(如果想知道Java中Comparable接口和Compar
        前言:在Java中,Comparable接口和Comparator接口都用于对象之间的比较和排序,但它们在使用和设计上存在一些关键的区别。✨✨✨这里是秋刀鱼不做梦的BLOG✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客        本篇文章主要讲解的是J......
  • 微服务新体验之Aspire初体验
    安装aspire查看vs版本我这的版本是17.9.7,不支持aspire,所以需要升级更新VS点击帮助->检查更新点击更新静等安装升级创建aspire项目项目创建成功,如下图运行Aspire项目在AspireApp1.AppHost的launchSettings.json文件中加"ASPIRE_ALLOW_UNSECURED_TRANSPORT":"tr......
  • Tron_CTF2024新生赛 WEB
    web业余憨憨简单复现一下,不过有两题环境挂了s1mple_php题目easy我的解答:源码:<?phphighlight_file(__FILE__);include("flag.php");$c=$_POST['c'];$v=$_GET['v'];$e=$_GET['e'];if(isset($_GET['v'])andisset($_GET['......