当前位置: 首页 > news >正文

Restaurants WebAPI(二)——DTO/CQRS


文章目录

  • 项目地址
  • 一、DTO
    • 1.1 创建Restaurant的Dto
    • 1.2 修改之前未使用Dto的接口
      • 1.2.1 修改GetRestaurantByIdUseCase
      • 1.2.2 修改IGetRestaurantByIdUseCase接口
      • 1.2.3 再次请求接口
    • 1.3 显示Dish List
      • 1.3.1创建DishDto
      • 1.3.2 在RestaurantDto里添加DishDto
      • 1.3.3 使用Include添加Dishes


项目地址

  • 教程作者:Jakub Kozera
  • 教程地址UD:
https://www.csdn.com/course/aspnet-core-web-api-clean-architecture-azure/learn/lecture/42032838#overview
  • 代码仓库地址:
  • 所用到的框架和插件:
.net 8

一、DTO

避免直接暴露数据库实体

1.1 创建Restaurant的Dto

  1. 在Restaurants.Application创建Dtos文件夹
  2. 创建RestaurantDto.cs,FromRestaurant静态方法,只是为了包装真正的实体类只返回需要的属性;
using Restaurants.Domain.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace Restaurants.Application.Dtos
{public class RestaurantDto{public int Id { get; set; }public string Name { get; set; } = default!;public string Description { get; set; } = default!;public string Category { get; set; } = default!;public bool HasDelivery { get; set; }public string? City { get; set; }public string? Street { get; set; }public string? ZipCode { get; set; }public List<DishDto> Dishes { get; set; } = new List<DishDto>();public static RestaurantDto FromRestaurant(Restaurant restaurant){return new RestaurantDto(){Id = restaurant.Id,Name = restaurant.Name,Description = restaurant.Description,Category = restaurant.Category,HasDelivery = restaurant.HasDelivery,City = restaurant.Address?.City,Street = restaurant.Address?.Street,ZipCode = restaurant.Address?.ZipCode,};}}
}

1.2 修改之前未使用Dto的接口

<

http://www.mrgr.cn/news/80751.html

相关文章:

  • 一文读懂:函数柯里化(Currying)
  • java开发入门学习四-运算符
  • 键入网址到网页显示,期间发生了什么?
  • 基于注意力的几何感知的深度学习对接模型 GAABind - 评测
  • libilibi项目总结(17)Elasticsearch 的使用
  • Chinese-Clip实现以文搜图和以图搜图
  • 17.springcloud_openfeign之扩展组件一
  • 2024.12.19总结
  • SamOut 推理空间不变模型解析
  • [SZ901]程序固化工具速度对比
  • 【Maven】基础(一)
  • 排序算法深度好文(图解 + 代码解析 + 误区 QA )——学排序看这一篇就够了!!!
  • 洛谷P3879 [TJOI2010] 阅读理解(c嘎嘎)
  • 【CSS in Depth 2 精译_085】14.2:CSS 蒙版的用法
  • 无刷电机的概念
  • Linux:进程通信、管道通信
  • PYQT5程序框架
  • Go-FastDFS文件服务器一镜到底使用Docker安装
  • 【AI图像生成网站Golang】项目架构
  • 基础数据结构---栈
  • linux_x64 下的一般汇编函数与syscall调用约定
  • 安卓换源资源记录
  • 修改ubuntu apt 源及apt 使用
  • HW机试题库(个人总结)
  • Fast-Planner项目复现(Ubuntu 20.04 ROS Noetic)
  • 设计模式2