代码之家  ›  专栏  ›  技术社区  ›  Pete Irfan TahirKheli

使用参数创建Azure无服务器函数

  •  2
  • Pete Irfan TahirKheli  · 技术社区  · 7 年前

    我正在尝试创建一个简单的函数,它将在get上接受一个参数,并基于该参数返回一个类别列表。

    但是,我找不到任何关于路由或传递参数的有用文档,所以这就是我所拥有的-我只需要一个指针来指示如何访问网站参数(如果路由正确的话)。

    public static class GetCategoriesCRUDFunction
    {
        [FunctionName("CategoriesFunction")]
        public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", Route = "{website}")]HttpRequestMessage request, TraceWriter log) // is this how to set up a route or do I need to do attribute routing?
        {
            IService service = new Service();
    
            var categories = await service.GetCategories(website);  // how do I get this website parameter from the querystring - do I need to use something like httpcontext?
    
            return request.CreateResponse(HttpStatusCode.OK, categories);
        }
    }
    
    1 回复  |  直到 7 年前
        1
  •  5
  •   Mikhail Shilkov    7 年前

    你就快到了。要从querystring实际获取值,请将参数添加到 Run 方法:

    [FunctionName("CategoriesFunction")]
    public static async Task<HttpResponseMessage> Run(
        [HttpTrigger(AuthorizationLevel.Function, "get", Route = "{website}")] HttpRequestMessage request, 
        string website, 
        TraceWriter log)
    

    您可能需要在路由中添加一些内容…默认情况下,所有httpTrigged函数的路由前缀都为 api .例如,你可以让路线 Route = "categories/{website}" 所以网址是 https://<function_app_url>/api/categories/<websitename>

    推荐文章