.Net工作流elsa-workflows官方文檔學習:創建HTTP工作流


網頁:https://elsa-workflows.github.io/elsa-core/docs/guides-hello-world-http

在本節中,我們將執行以下操作:

  •  創建一個ASP.NET Core應用程序。
  • 以編程方式定義工作流,該工作流在HTTP請求到達指定URL時執行。

 讓我們開始吧!

創建ASP.NET Core項目

創建一個名為Elsa.Guides.HelloWorld.WebApp的新的空ASP.NET Core項目,並添加以下程序包:

  • Elsa.Core
  • Elsa.Activities.Http

創建工作流類

創建一個名為HelloWorldHttpWorkflow的新類,並添加以下代碼:

using System;
using System.Net;
using System.Net.Http;
using Elsa.Activities.Http.Activities;
using Elsa.Expressions;
using Elsa.Services;
using Elsa.Services.Models;

namespace Elsa.Guides.HelloWorld.WebApp
{
    public class HelloWorldHttpWorkflow : IWorkflow
    {
        public void Build(IWorkflowBuilder builder)
        {
            builder
                .StartWith<ReceiveHttpRequest>(
                    x =>
                    {
                        x.Method = HttpMethod.Get.Method;
                        x.Path = new Uri("/hello-world", UriKind.Relative);
                    }
                )
                .Then<WriteHttpResponse>(
                    x =>
                    {
                        x.Content = new LiteralExpression("<h1>Hello World!</h1>");
                        x.ContentType = "text/html";
                        x.StatusCode = HttpStatusCode.OK;
                        x.ResponseHeaders = new LiteralExpression("X-Powered-By=Elsa Workflows");
                    }
                );
        }
    }
}
View Code

更新Startup.cs文件

接下來,打開Startup.cs並插入以下代碼:

using Elsa.Activities.Http.Extensions;
using Elsa.Extensions;
using Elsa.Services;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;

namespace Elsa.Guides.HelloWorld.WebApp
{
    public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
            services
                .AddElsa()
                .AddHttpActivities()
                .AddWorkflow<HelloWorldHttpWorkflow>;
        }

        public void Configure(IApplicationBuilder app)
        {
            app.UseHttpActivities();
        }
    }
}
View Code

運行

運行程序並等待,直到看到以下輸出:

Now listening on: http://localhost:5000
Now listening on: https://localhost:5001
Application started. Press Ctrl+C to shut down.

 

打開瀏覽器窗口或Postman之類的工具,然后導航至https://localhost:5001/hello-world。

 結果應如下所示:

 

 總結

由此示例可見,HTTP工作流是一種輕松實現邏輯以快速響應HTTP請求的好方法。

源碼

https://github.com/elsa-workflows/elsa-guides/tree/master/src/Elsa.Guides.HelloWorld.WebApp


免責聲明!

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



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