前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Startup的Configure中配置api

在Startup的Configure中配置api

原创
作者头像
用户7108768
修改2021-09-26 17:46:23
1K0
修改2021-09-26 17:46:23
举报

Actor的api是必需的,因为 Dapr 挎斗调用应用程序来承载和与执行组件实例进行交互,所以在Startup的Configure中配置

代码语言:javascript
复制
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapActorsHandlers();
               // .......
            });

Startup类是用于注册特定执行组件类型的位置。 在ConfigureServices 注册 services.AddActors :

代码语言:javascript
复制
            services.AddActors(options =>
            {
                options.Actors.RegisterActor<OrderStatusActor>();
            });

为测试这个Actor,需要定义一个接口调用,新增ActorController

代码语言:javascript
复制
using Dapr.Actors;
using Dapr.Actors.Client;

using FrontEnd.ActorDefine;

using Microsoft.AspNetCore.Mvc;

using System.Threading.Tasks;

namespace FrontEnd.Controllers
{
    [Route("[controller]")]
    [ApiController]
    public class ActorController : ControllerBase
    {
        [HttpGet("paid/{orderId}")]
        public async Task<ActionResult> PaidAsync(string orderId)
        {
            var actorId = new ActorId("myid-"+orderId);
            var proxy = ActorProxy.Create<IOrderStatusActor>(actorId, "OrderStatusActor");
            var result = await proxy.Paid(orderId);
            return Ok(result);
        }
    }
}

ActorProxy.Create 为创建代理实例。 Create方法采用两个参数:标识特定执行组件和执行组件 ActorId 类型。 它还具有一个泛型类型参数,用于指定执行组件类型所实现的执行组件接口。 由于服务器和客户端应用程序都需要使用执行组件接口,它们通常存储在单独的共享项目中。

下面通过postman测试下,调用成功

 查看redis中的数据

代码语言:javascript
复制
127.0.0.1:6379> keys *
 1) "test_topic"
 2) "frontend||guid"
 3) "frontend||name"
 5) "newOrder"
 6) "frontend||OrderStatusActor||myid-123||123"
 7) "myapp2||key2"
 8) "myapp2||key1"
 9) "deathStarStatus"
10) "myapp||name"
127.0.0.1:6379> hgetall frontend||OrderStatusActor||myid-123||123
1) "data"
2) "\"init\""
3) "version"
4) "1"

可以发现actor数据的命名规则是appName||ActorName||ActorId||key

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档