首页 > 其他分享 >DDD落地 - 实现一个简单的API

DDD落地 - 实现一个简单的API

时间:2024-06-17 13:59:26浏览次数:10  
标签:前言 落地 demo 代码 API 文章 DDD

1. 前言

去年看了这个系列产品代码都给你看了,可别再说不会DDD的文章,对DDD了解得深了一些,结果长时间不用,全给忘光了。最近又捡起来看了看,然后实操了一下,做了个小小的demo,加深一下印象,下次哪个项目可能就能用上。
另外,这个demo没有做领域事件,回头再加上。
代码地址: https://github.com/ComicFavor/DDD-Demo

2. 代码工程

DDD的术语、细节就不在这个贴子里讲了,前言提及的文章讲得已经足够详细了,这里直接上代码。

2.1. 项目结构

我们常常习惯用先技术再业务的方式来构建工程,我一直都是这样做的,比如说最基本的三层架构。
参考文章里说这是一种反模式,所以也仿照着来了个非反模式
顺便说一句,这样似乎会让所有的核心功能都在一个工程里面,不知道是不是符合最佳实践。

image

2.2. 调用关系

刚接触DDD,肯定会被里面的各种术语和关系搞得晕头转向,我这边画个图。

一般有以下两种用例:

  1. 创建资源

    image

    注意:工厂可能需要调用资源库去进行一些判断,比如说是否重复等等,这个功能也可以在领域服务中实现。

  2. 更新资源:

    image

    注意:当业务复杂到需要同时操作多个实体时,就需要用到领域服务

标签:前言,落地,demo,代码,API,文章,DDD
From: https://www.cnblogs.com/wang-yi-yi/p/18252127

相关文章

  • 无代码侵入自动生成API接口文档——EasyYapi
    无代码侵入自动生成API接口文档——EasyYapi在idea中下载EasyYapi插件配置EasyYapi插件(基本都是这步存在问题)server配置很多服务器都配置了代理,所以这个地址很容易填写错误(我多配置了/yapi),这里只是yapi服务器地址,他会自动加/yapi,如果代理规则也是这个,那么就是代理服务器地址......
  • 升级到.Net 8 api 返回JObject 对象为空字符串
    在使用dotnet8过程中,使用了JObject类型作为api的返回,但是返回的空数组api:[HttpGet("voices")]publicasyncTask<IActionResult>GetObject(){JObjectobj=newJObject();obj["test"]="test";returnnewJsonResult(obj){StatusCod......
  • 如何将图片转换为向量?(通过DashScope API调用)
    本文介绍如何通过模型服务灵积DashScope将图片转换为向量,并入库至向量检索服务。DashVector中进行向量检索。,通过灵活、易用的模型API服务,让各种模态模型的能力,都能方便的为AI开发者所用。通过灵积API,开发者不仅可以直接集成大模型的强大能力,也可以对模型进行训练微调,实现模型......
  • Apipost模拟HTTP客户端
    模拟HTTP客户端的软件有很多,其中比较著名的就有API-FOX、POSTMAN。相信很多小伙伴都使用POSTMAN。这篇博客主要介绍Apipost的原因是,Apipost无需下载,具有网页版。APIFOX的站内下载:Api-Fox,类似于PostMan的软件_postman资源-CSDN文库 Apipost模拟HTTP客户端(正文)新建窗口 ......
  • ArkTS本地化数据库SqlLight使用,鸿蒙NEXT星河版API(11)
    RelationalStore提供了一套完整的对本地数据库进行管理的机制,对外提供了一系列的增、删、改、查等接口,也可以直接运行用户输入的SQL语句来满足复杂的场景需要。谓词:数据库中用来代表数据实体的性质、特征或者数据实体之间关系的词项,主要用来定义数据库的操作条件。结果......
  • FASTAPI从入门到进阶
    fastapi框架fastapi,一个用于构建API的现代、快速(高性能)的web框架。fastapi是建立在Starlette和Pydantic基础上的,Pydantic是一个基于Python类型提示来定义数据验证、序列化和文档的库。Starlette是一种轻量级的ASGI框架/工具包,是构建高性能Asyncio服务的理性选择。快速:可与......
  • Python API自动化:提升开发效率的利器
    PythonAPI自动化:提升开发效率的利器随着互联网的发展,API(应用程序接口)已经成为现代应用程序开发的核心部分。API允许不同的软件系统之间进行通信,使得开发者可以轻松地集成各种服务和功能。在日常开发中,API的自动化测试和调用成为了不可或缺的环节。本文将介绍如何使用Pytho......
  • 育种 API (BrAPI):一个植物表型/基因型数据库的标准接口
    TheBreedingAPI(BrAPI)项目旨在实现植物育种数据库之间的互操作性。BrAPI是一个标准化的RESTfulWeb服务API规范,用于交流植物育种数据,包括基因型和表型。BrAPI非常灵活,可以处理各种用例。社区也非常强大(https://brapi.org/),任何对植物育种数据管理感兴趣的人都可以免费......
  • (26-4-01)基于OpenAI和LangChain的上市公司估值系统:OpenAI API和Langchain探索(1)OpenAI
    10.5 OpenAIAPI和Langchain探索接下来使用OpenAIAPI与Langchain对解析后的文档进行总结,从中提取有价值的信息。这将帮助我们更好地理解文档中的内容,包括业务情况、风险因素、财务状况分析等,并提供更简洁的概括信息。10.5.1 OpenAI接口编写文件openai_interface.py,实......
  • 通过Vue3+高德地图的JS API实现市区地图渲染
    效果图:核心代码:<scriptsetup>import{onMounted,onUnmounted}from'vue';importAMapLoaderfrom'@amap/amap-jsapi-loader';import{message}from'ant-design-vue';importschoolfrom'@/assets/icons/school......