登录发现更多内容
首页
分类
发帖
账号
自动登录
找回密码
密码
登录
立即注册
立即登录
立即注册
其他登录
QQ
微信
首页
Portal
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
产品教程
BBS
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
开发资料
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
样品购买
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
IoT云平台
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
GitHub
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
技术博客
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
搜索
搜索
热搜:
LoRa
ESP8266
安信可
本版
帖子
用户
请
登录
后使用快捷导航
没有账号?
立即注册
每日签到
任务
广播
导读
排行榜
设置
我的收藏
退出
20
0
0
首页
爱星物联IoT云平台
›
【小白二开系列】通过新增自定义服务,我强制让APP增加 ...
1
2
3
/ 3 页
下一页
返回列表
【小白二开系列】通过新增自定义服务,我强制让APP增加了一个食谱模块
[ 复制链接 ]
发布帖子
Hogan
管理员
29
主题
32
回帖
1481
积分
管理员
积分
1481
私信
20人留言
楼主
爱星物联IoT云平台
18178
20
2024-4-28 08:34:21
平台提供了很多API,有的时候我们想要开发一个独立业务,不想要和平台提供API项目柔和在一起,可以考虑增加新的自定义接口服务和业务服务;今天我们就试试弄一个自己的业务API服务,用来实现厨房智能小家电里常用的食谱模块吧; **创建服务:** 1、搭建新的业务API服务,需要用到 `iot_demo_api_service`模板; 2、搭建新的业务服务,需要用到 `iot_demo_service`模板; 我们先将模板目录Copy出来,修改里面的项目名称,这里我将项目名称定义为 `iot_recipes_api_service、iot_recipes_service`,这个两个服务专门用于给厨房类家电提供制作食谱相关业务接口;  **数据库表创建:** 初步设计有如下数据表: > 食谱类型表 > 食谱信息表 > 食材表 > 食材类型表 > 食谱步骤表 > 食谱步骤食材关联表 > 食谱评论评分表 > 食谱赞、踩、收藏表 **业务代码生成:** 使用代码目录的代码生成工具,生成食谱业务的所有代码 在生成之前,我们先编辑下代码生成工具的配置文件  编辑gen.bat文件  执行gen.bat,实现食谱模块的所有代码生成  将生成所得的convert、handler、service目录直接复制到iot_recipes_service服务的根目录,注意handler目录有一个handler注册的方法需要手写,你需要打开手动编写下,将所有handler进行注册;  进入到iot_model目录,创建目录db_recipes,生成和存放食谱相关的model和orm,创建gentoo.bat文件,添加如下代码: ``` ..\\..\\tool\\mysql-to-model\\gentool.exe -dsn "root:123456@tcp(127.0.0.1:3306)/iot_reciples?charset=utf8mb4&parseTime=True&loc=Local" -outPath orm -modelPkgName model ```  执行gentoo.bat,得到生成后的model和orm 经过如上操作,基础功能的添删改查就完成; **App api接口实现:** APP中增加食谱类型表、食谱信息表、食材表、食材类型表、食谱步骤表数据查询接口,增加食谱评论评分表、食谱赞、踩、收藏表维护功能; ``` //食谱 appappi.GET("/recipesInfo/detail/:id", apis.RecipesInfocontroller.GetRecipesInfoDetail) appappi.GET("/recipesInfo/list", apis.RecipesInfocontroller.QueryRecipesInfoList) //食谱类型 appappi.GET("/recipesType/list", apis.RecipesTypecontroller.QueryRecipesTypeList) //食材 appappi.GET("/food/detail/:id", apis.Foodcontroller.GetFoodDetail) appappi.GET("/food/list", apis.Foodcontroller.QueryFoodList) //食材类型 appappi.GET("/foodType/list", apis.FoodTypecontroller.QueryFoodTypeList) //增加食谱评论评分表 appappi.GET("/recipesComment/list", apis.RecipesInfocontroller.QueryRecipesCommentList) appappi.GET("/recipesComment/add", apis.RecipesInfocontroller.AddRecipesComment) //食谱赞、踩、收藏表 appappi.GET("/recipesComment/setGood", apis.RecipesCommentcontroller.SetGood) appappi.GET("/recipesComment/setBad", apis.RecipesCommentcontroller.SetBad) appappi.GET("/recipesComment/setLike", apis.RecipesCommentcontroller.SetBad) ``` **Cloud api接口实现(添加到iot_cloud_api_service服务):** APP中增加食谱类型表、食谱信息表、食材表、食材类型表、食谱步骤表配置功能接口,增加食谱评论评分表、食谱赞、踩、收藏表查询功能; ``` //食谱 webapi.GET("/recipesInfo/detail/:id", apis.RecipesInfocontroller.GetRecipesInfoDetail) webapi.GET("/recipesInfo/list", apis.RecipesInfocontroller.QueryRecipesInfoList) webapi.POST("/recipesInfo/add", apis.RecipesInfocontroller.AddRecipesInfo) webapi.POST("/recipesInfo/edit", apis.RecipesInfocontroller.EditRecipesInfo) webapi.POST("/recipesInfo/publish", apis.RecipesInfocontroller.PublishRecipesInfo) webapi.POST("/recipesInfo/delete/:id", apis.RecipesInfocontroller.DeleteRecipesInfo) //食谱类型 webapi.GET("/recipesType/detail/:id", apis.RecipesTypecontroller.GetRecipesTypeDetail) webapi.GET("/recipesType/list", apis.RecipesTypecontroller.QueryRecipesTypeList) webapi.POST("/recipesType/add", apis.RecipesTypecontroller.AddRecipesType) webapi.POST("/recipesType/edit", apis.RecipesTypecontroller.EditRecipesType) webapi.POST("/recipesType/delete/:id", apis.RecipesTypecontroller.DeleteRecipesType) //食材 webapi.GET("/food/detail/:id", apis.Foodcontroller.GetFoodDetail) webapi.GET("/food/list", apis.Foodcontroller.QueryFoodList) webapi.POST("/food/add", apis.Foodcontroller.AddFood) webapi.POST("/food/edit", apis.Foodcontroller.EditFood) webapi.POST("/food/delete/:id", apis.Foodcontroller.DeleteFood) //食材类型 webapi.GET("/foodType/detail/:id", apis.FoodTypecontroller.GetFoodTypeDetail) webapi.GET("/foodType/list", apis.FoodTypecontroller.QueryFoodTypeList) webapi.POST("/foodType/add", apis.FoodTypecontroller.AddFoodType) webapi.POST("/foodType/edit", apis.FoodTypecontroller.EditFoodType) webapi.POST("/foodType/delete/:id", apis.FoodTypecontroller.DeleteFoodType) //食谱步骤 webapi.GET("/recipesSteps/list", apis.RecipesStepscontroller.QueryRecipesStepsList) webapi.POST("/recipesSteps/add", apis.RecipesStepscontroller.AddRecipesSteps) webapi.POST("/recipesSteps/edit", apis.RecipesStepscontroller.EditRecipesSteps) webapi.POST("/recipesSteps/delete/:id", apis.RecipesStepscontroller.DeleteRecipesSteps) //食谱步骤食材关联表 webapi.GET("/recipesStepRe/list", apis.RecipesStepRecontroller.QueryRecipesStepList) webapi.POST("/recipesStepRe/add", apis.RecipesStepRecontroller.AddRecipesStep) webapi.POST("/recipesStepRe/delete/:id", apis.RecipesStepRecontroller.DeleteRecipesStep) //食材步骤关联 webapi.GET("/recipesStepRe/list", apis.RecipesInfocontroller.QueryRecipesStepReList) webapi.POST("/recipesStepRe/add", apis.RecipesInfocontroller.AddRecipesStepRe) webapi.POST("/recipesStepRe/delete/:id", apis.RecipesInfocontroller.DeleteRecipesStepRe) //增加食谱评论评分表 webapi.GET("/recipesComment/list", apis.RecipesInfocontroller.QueryRecipesCommentList) webapi.GET("/recipesComment/repley", apis.RecipesInfocontroller.AddRecipesComment) ``` **前端功能实现:** 开放平台增加食谱管理、食谱类型管理、食材管理、食材类型管理、食材统计等功能页面;  前端大部分组件使用的ant-design-vue的原生组件,直接参照官方文档就可以开发了;另外框架自定义了 `ChartCard、ColorPicker、DemoStep、detailChange、Editor、GlobalHeader、IconFont、IconSelector、ImgCutterDialog、MultiTab、NoData、NProgress、PreviewModal、SelectLang、tableCard、uploadButton、uploadCard、VueQrCode`组件,你可以参照已实现示例进行使用;  **APP开发** 因为平台提供的开源版APP我没有拿到源代码,无法直接修改,于是我想到一个非常特别的方式来实现APP的功能,就是我创建了一个食谱的产品,然后编写了一套食谱的控制面板,这个食谱的产品默认添加给每一个注册用户,然后食谱面板中完成食谱模块的功能;  于是我写了一个食谱的H5项目,作为产品的方式默认引入到APP中, 当然你可以使用官方提供的面板的模板进行改造,这样可以使用到于原生交互和设备控制的功能;  接下来家庭数据获取,为每一个用户提供一个默认食谱面板入口; 找到:iot_app_api_service/controls/user/services/home_service.go,在大概196行的位置增加默认食谱面板的引用,以产品面板的方式加载食谱模块; 注意:deviceList中的设备类型修改3,这样就不会出现开关图标了;  完美,我让爱星物联开源APP硬生生的扩展了一个食谱的模块了;  END.
点赞
0
收藏
0
淘帖
0
────
0
人觉得很赞
────
回复
使用道具
举报
20 回复
电梯直达
正序浏览
倒序浏览
正序浏览
沙发
jennifer
回复
使用道具
举报
2024-4-28 09:02:25
思路打开了
也成功看饿了
PO主真厉害
回复
评论
使用道具
举报
板凳
1084504793
回复
使用道具
举报
2024-4-28 09:07:46
赞
回复
评论
使用道具
举报
地板
干簧管
回复
使用道具
举报
2024-4-28 09:21:04
👍
回复
评论
使用道具
举报
5
#
WT_0213
回复
使用道具
举报
2024-4-28 09:24:49
只要思想不滑坡,办法总比困难多
回复
评论
使用道具
举报
6
#
爱笑
回复
使用道具
举报
2024-4-28 10:12:07
不错不错,写的越来越好了!
回复
评论
使用道具
举报
用心做好保姆工作
7
#
1055173307
回复
使用道具
举报
2024-4-28 10:55:50
厉害
回复
评论
使用道具
举报
8
#
iiv
回复
使用道具
举报
2024-4-28 10:57:04
很强
回复
评论
使用道具
举报
9
#
lazy
回复
使用道具
举报
2024-4-28 14:01:40
赞
回复
评论
使用道具
举报
10
#
yff
回复
使用道具
举报
2024-4-28 18:03:04
点赞
回复
评论
使用道具
举报
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
立即登录
手机登录
点评
高级模式
本版积分规则
回帖并转播
回帖后跳转到最后一页
下一页 »
1
2
3
/ 3 页
下一页
今日推荐
管理员注意了,能不能麻烦处理一下网站证书
小安派-Eyes-S1能用arduino编程吗?
【电子DIY作品】AiPi-Eyes-R1 古诗桌摆
【电子DIY作品】Ai-WV01-32S 桌面聊天小助手
【电子DIY作品】再也不干烧了+AI-WB2-12F+RD-04
【大促】安信可淘宝双十二来了!无需凑单,立享88折,活动商品包
【电子DIY作品】造一辆超“听话”的麦轮小车+WV01-32S
大家好,又是我,在25年的今天,我带来了全新的串口助手
针对WB2-12S固件合成烧录的补充说明(已解决)
【BW20-12F开发板评测】6、Zephyr初步
热帖排行
【官方招聘】诚邀一名热爱物联网的小伙伴
管理员注意了,能不能麻烦处理一下网站证书
小安派-Eyes-S1能用arduino编程吗?
【电子DIY作品】AiPi-Eyes-R1 古诗桌摆
【求助】AI-WB2-12F模块无法使用WIFI功能
AiPi-UNO-ET485没法在Arduino上烧录
【电子DIY作品】Ai-WV01-32S 桌面聊天小助手
裸机时代的多任务幻觉:从定时器中断到简易调度框架
统计信息
会员数: 30297 个
话题数: 44578 篇
首页
分类
我的