• elsa-core:2.Hello World: HTTP


    在本快速入门中,我们将了解一个执行工作流的最小 ASP.NET Core 应用程序。工作流将侦听传入的 HTTP 请求并写回一个简单的响应。

    我们将:

    •  创建 ASP.NET Core 应用程序。
    •  使用 Elsa 的 Workflow Builder API 以编程方式定义工作流定义,当 HTTP 请求从指定的 URL 传入时,该 API 会执行。

     


    项目

    创建一个名为 ElsaQuickstarts.WebApp.HelloWorld 的新的空 ASP.NET Core 项目:

    dotnet new web -n "ElsaQuickstarts.WebApp.HelloWorld"

    CD 到创建的项目文件夹中:

    cd ElsaQuickstarts.WebApp.HelloWorld

    添加以下包:

    dotnet add package Elsa
    dotnet add package Elsa.Activities.Http

    工作流程

    创建一个名为 HelloWorld.cs 的新文件并添加以下代码:

    using System.Net;
    using Elsa.Activities.Http;
    using Elsa.Builders;
    
    namespace ElsaQuickstarts.WebApp.HelloWorld
    {
        /// <summary>
        /// A workflow that is triggered when HTTP requests are made to /hello-world and writes a response.
        /// </summary>
        public class HelloWorld : IWorkflow
        {
            public void Build(IWorkflowBuilder builder)
            {
                builder
                    .HttpEndpoint("/hello-world")
                    .WriteHttpResponse(HttpStatusCode.OK, "<h1>Hello World!</h1>", "text/html");
            }
        }
    }

    上述工作流有两个活动。第一个活动 HttpEndpoint 表示一个 HTTP 端点,可以使用 HTTP 客户端(包括 Web 浏览器)调用该端点。第一个活动连接到第二个活动 WriteHttpResponse,后者将响应写入 HTTP 客户端。

    当活动如本例所示链接时,第二个活动连接到第一个活动的“Done”结果。您还可以明确连接到“Done”结果,如下所示:

    builder
      .HttpEndpoint("/hello-world")
      .When(OutcomeNames.Done)
      .WriteHttpResponse(HttpStatusCode.OK, "<h1>Hello World!</h1>", "text/html");

    任何时候您想连接到“Done”以外的结果时,都需要明确连接到活动的结果


    Startup

    接下来,打开 Startup.cs 并将其内容替换为以下内容:

    using Microsoft.AspNetCore.Builder;
    using Microsoft.Extensions.DependencyInjection;
    
    namespace ElsaQuickstarts.WebApp.HelloWorld
    {
        public class Startup
        {
            public void ConfigureServices(IServiceCollection services)
            {
                services
                    .AddElsa(options => options
                        .AddHttpActivities()
                        .AddWorkflow<HelloWorld>());
            }
    
            public void Configure(IApplicationBuilder app)
            {
                app.UseHttpActivities();
            }
        }
    }

    运行

    运行程序并等待,直到看到以下输出:

    Now listening on: http://localhost:5000

    Now listening on: https://localhost:5001

    Application started. Press Ctrl+C to shut down.

    打开 Web 浏览器并导航到 https://localhost:5001/hello-world。

    结果应如下所示:

     

     

    如果觉得不错,可以推荐收藏一下,让我也更有动力。
  • 相关阅读:
    卡特兰数
    java学习
    最大化窗口
    C++复制文件的代码
    C++复制文件(使用WindowsAPI)
    C++下获取XMLHTTPRequest指针
    操作哈希表
    《Windows Communication Foundation之旅》系列之三(转载)
    让.Net2.0的Membership使用已存在的Sql Server2000/2005数据库
    用Visual C#做WinForm组件
  • 原文地址:https://www.cnblogs.com/jingboweilan/p/15150484.html
Copyright © 2020-2023  润新知