如何将模型从 API 传递到组件
How to pass models from API to components
在后端和前端之间传输模型的最佳方式是什么。
- 即使不是全部,在前端克隆后端是否更好?
使用属性 ?
- 或者使用 DTO 只为每个用例传输必要的属性?
如果有最佳实践、设计模式或任何其他我有兴趣知道的建议。
有关信息,我的堆栈是 Spring Boot 和 Angular 6.
如果前端传入的数据不需要转换,可以使用后端模型,在java中可以生成打字稿模型,从java模型中使用bundle: https://github.com/vojtechhabarta/typescript-generator
尝试使用swagger mate
https://dzone.com/articles/using-swagger-to-connect-a-backend-to-an-angular-f
希望这对您有所帮助
我强烈推荐 DTO,我们一直在使用带有此 Typewriter 扩展名的 DTO Visual Studio 以使 .ts 文件与 .cs 文件保持同步。
也许你可以做类似的事情。
https://frhagn.github.io/Typewriter/
Angular前端使用.ts版本,C#后端使用.cs版本。
如果您需要 .ts 和 .cs 版本之间的任何差异,您可以编辑 .tst(typescript 模板文件)以进行大量自定义。
这是我在下面想到的最好的模式,它允许我们嵌套枚举和其他 Dto 类:
${
// Enable extension methods by adding using Typewriter.Extensions.*
using Typewriter.Extensions.Types;
string TypeWithNoArray(Type t) => t.Name.TrimEnd('[', ']');
}
/* DO NOT EDIT ANY .TS FILES WITH THIS COMMENT
THESE .TS FILES ARE GENERATED BY A CORRESPONDING .CS FILE AND A .TST FILE
BY USING THE TYPEWRITER EXTENSION:
https://frhagn.github.io/Typewriter */
$Classes(*Dto*)[
$Properties(x => !x.Type.IsPrimitive || x.Type.IsEnum)[$Type[import { $TypeWithNoArray } from './$TypeWithNoArray';
]]
export class $Name {
$Properties[public $name: $Type = $Type[$Default];
]$BaseClass[$Properties[public $name: $Type = $Type[$Default];]]
}
]
$Enums(*Dto*)[
export enum $Name {$Values[
$name = $Value][,]
}
]
在后端和前端之间传输模型的最佳方式是什么。
- 即使不是全部,在前端克隆后端是否更好? 使用属性 ?
- 或者使用 DTO 只为每个用例传输必要的属性?
如果有最佳实践、设计模式或任何其他我有兴趣知道的建议。
有关信息,我的堆栈是 Spring Boot 和 Angular 6.
如果前端传入的数据不需要转换,可以使用后端模型,在java中可以生成打字稿模型,从java模型中使用bundle: https://github.com/vojtechhabarta/typescript-generator
尝试使用swagger mate
https://dzone.com/articles/using-swagger-to-connect-a-backend-to-an-angular-f
希望这对您有所帮助
我强烈推荐 DTO,我们一直在使用带有此 Typewriter 扩展名的 DTO Visual Studio 以使 .ts 文件与 .cs 文件保持同步。
也许你可以做类似的事情。
https://frhagn.github.io/Typewriter/
Angular前端使用.ts版本,C#后端使用.cs版本。 如果您需要 .ts 和 .cs 版本之间的任何差异,您可以编辑 .tst(typescript 模板文件)以进行大量自定义。
这是我在下面想到的最好的模式,它允许我们嵌套枚举和其他 Dto 类:
${
// Enable extension methods by adding using Typewriter.Extensions.*
using Typewriter.Extensions.Types;
string TypeWithNoArray(Type t) => t.Name.TrimEnd('[', ']');
}
/* DO NOT EDIT ANY .TS FILES WITH THIS COMMENT
THESE .TS FILES ARE GENERATED BY A CORRESPONDING .CS FILE AND A .TST FILE
BY USING THE TYPEWRITER EXTENSION:
https://frhagn.github.io/Typewriter */
$Classes(*Dto*)[
$Properties(x => !x.Type.IsPrimitive || x.Type.IsEnum)[$Type[import { $TypeWithNoArray } from './$TypeWithNoArray';
]]
export class $Name {
$Properties[public $name: $Type = $Type[$Default];
]$BaseClass[$Properties[public $name: $Type = $Type[$Default];]]
}
]
$Enums(*Dto*)[
export enum $Name {$Values[
$name = $Value][,]
}
]