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。

結果應如下所示:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM