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”以外的结果时,都需要明确连接到活动的结果 |
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。
结果应如下所示:

elsa-core—2.Hello World: HTTP的更多相关文章
- elsa core—3.elsa 服务
在本快速入门中,我们将介绍一个用于设置Elsa Server的最小ASP.NET Core应用程序.我们还将安装一些更常用的activities(活动),如Timer.Cron和sendmail,以能 ...
- .NET Core/.NET5/.NET6 开源项目汇总3:工作流组件
系列目录 [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...
- 工作流引擎之Elsa入门系列教程之一 初始化项目并创建第一个工作流
引子 工作流(Workflow)是对工作流程及其各操作步骤之间业务规则的抽象.概括描述. 为了实现某个业务目标,需要多方参与.按预定规则提交数据时,就可以用到工作流. 通过流程引擎,我们按照流程图,编 ...
- ABPHelper.CLI及其依赖项简单介绍
目录 目录 ABPHelper.CLI 入门 使用指南 命令行 技术点如下 Scriban 通过Microsoft.Extensions.FileProviders.Embedded获取嵌入资源 通过 ...
- elsa-core:4.ASP.NET Core Server with Elsa Dashboard
在本快速入门中,我们将了解一个最小的 ASP.NET Core 应用程序,该应用程序承载 Elsa Dashboard 组件并将其连接到 Elsa Server. ElsaDashboard + Do ...
- .NET 5 开源工作流框架elsa技术研究
今天假期第一天,研究了.NET 5开源工作流框架elsa,现在分享给大家. 一.框架简介 elsa是一个开源的.NET Standard 工作流框架,官方网站:https://elsa-workflo ...
- .NET平台系列12 .NET未来之开源.NET Core
系列目录 [已更新最新开发文章,点击查看详细] 微软于2014年11月推出了.NET Core 1.0..NET Core的目标是从我们在过去12年中对.NET Framework的构建.交付 ...
- Workflow Core + asp.net core 5.0 实现简单审批工作流
我们知道企业业务系统到处都可以审批工作流的,但也很少有像OA系统一样复杂多级多条件的审批工作流需要设计,所以我们需要一个轻量级的容易上手的workflow框架,通过GitHub,我发现danielge ...
- 从.net开发做到云原生运维(二)——.net core生态
1. 新的开始从.net 6.0开始 .net 6.0作为一个长期支持版,具有里程碑的意义.从.net5.0将.net framework和.net core合并以后,在.net5.0的功能上再次完善 ...
- 开源的.Net 工作流引擎Elsa初试——创建工作流服务器和图形化工作流配置管理应用
微软的Workflow Foundation基于.Net Framework,并且没有向.Net Core迁移的计划.我们的很多项目使用了工作流引擎,这些项目向.Net Core以及更高版本迁移时遇到 ...
随机推荐
- AcWing 239. 奇偶游戏
小A和小B在玩一个游戏. 首先,小A写了一个由0和1组成的序列S,长度为N. 然后,小B向小A提出了M个问题. 在每个问题中,小B指定两个数 l 和 r,小A回答 S[l~r] 中有奇数个1还是偶数个 ...
- AcWing 1290. 越狱
监狱有连续编号为1~n的n个房间,每个房间关押一个犯人.有 M种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人信仰的宗教相同,就可能发生越狱.求有多少种状态可能发生越狱. #include< ...
- Java程序设计当堂测试 9.20
/*Java当堂测试 ATM机模拟系统由于学习的知识有限,不能完成所有课上项目,文件的应用没有完成,汇款转账功能也没有写,一些要求该退出的地方也没有写,基本功能还算完善*/ 1 package acc ...
- java课堂动手动脑及课后实验总结
动手动脑一:枚举 输出结果: false false true SMALL MEDIUM LARGE 分析和总结用法 枚举类型的使用是借助ENUM这样一个类,这个类是JAVA枚举类型的公共基本 ...
- 部署springboot时出现的问题
一.打包出现问题 后经发现是因为maven的打包插件的版本问题,需要修改版本 <plugins> <plugin> <groupId>org.springframe ...
- C# CheckedListBox控件的用法总结
1. 添加项目 checkedListBox1.Items.Add("一级"); checkedListBox1.Items.Add("二级"); checke ...
- 记一次错误:mid=front+(rear-front)>>1;
设rear=6,front=4,mid=front+(rear-front)>>1; mid应该等于5的,但结果却是3. 错误原因:"+"运算符的优先级高于" ...
- SpringBoot+Redis 实现消息订阅发布
什么是 Redis Redis 是一个开源的使用 ANSI C语言编写的内存数据库,它以 key-value 键值对的形式存储数据,高性能,读取速度快,也提供了持久化存储机制. Redis 通常在项目 ...
- Geoserver通过ajax跨域访问服务数据的方法(含用户名密码认证的配置方式)
Goeserver数据有两种,一种需进行用户密码的权限认证,一种无须用户密码.对于网上跨域访问Geoserver数据的种种方法,对这2种数据并非通用. 笔者将Geoserver官方下载的Geoserv ...
- ODOO里视图开发案例---定义一个像tree、form一样的视图
odoo里视图模型MVC模式: 例子:在原来的视图上修改他: var CustomRenderer = KanbanRenderer.extend({ ....});var CustomRendere ...