引言
在前面上一次的实战中,我们搭建了dapr的本地开发环境,并且部署了dapr官方的Hello World示例代码,为了加深对Dapr的理解,在本文中使用go 和 java语言重写Dapr的官方示例代码
Dapr的官方示例代码Hello World的分析
dapr示例
在服务端中提供了三个对Order的处理逻辑:增加订单,查询订单和删除订单,这三个业务处理都是以REST的方式对外提供服务,而这三个业务处理都会通过Dapr Runtime与Redis交互来完成数据的存放,读取和删除;而python所开发的客户端,周期的通过Dapr Runtime去调用服务端的增加订单的接口
官方示例代码重新实现
服务端的代码分为两个部分:提供的REST服务 和 访问Redis,后面将对这两个部分进行分析
使用golang实现服务端
提供REST服务
REST服务这部分的开发与一般的rest服务的开发并没有什么不同之处,所以在这里我选择自己比较熟悉的echo框架作为了开发框架,分别开发了order的增查删的接口,代码如下:
路由注册部分,完整代码参考
e := echo.New()
e.POST("/neworder", orderResource.Neworder)
e.GET("/order", orderResource.Queryorders)
e.DELETE("/order/:id", orderResource.DeleteOrder)
REST请求处理部分,完整代码参考
func (o *OrderResource) Neworder(c echo.Context) error {
data := &Data{}
err := c.Bind(data)
if err != nil {
return err
}
err = o.cache.Add(data)
if err != nil {
return c.String(500, err.Error())
}
return c.String(200, "add success")
}
func (o *OrderResource) Queryorders(c echo.Context) error {
data, err := o.cache.Query()
if err != nil {
return c.String(500, err.Error())
}
return c.JSON(200, data)
}
func (o *OrderResource)