在本快速入門中,我們將了解一個執行作業流的最小 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”以外的結果時,都需要明確連接到活動的結果 |
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,
結果應如下所示:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/294106.html
標籤:其他
上一篇:HCNA Routing&Switching之DHCP服務
下一篇:機器學習入門日記
