什么模式应该适用于我的REST应用程序?

时间:2017-01-11 22:56:21

标签: c# asp.net rest design-patterns asp.net-web-api

我的网页应用程序设计出了问题。我正在使用Web API(ASP.NET Core 1.0),我将使用Entity Framework实现一个通用存储库。

我的模特是:

行星下,    的坐标下,    的地区下,       的建筑下,       我的资源

行星有一个坐标和4个地区。 每个地区都有多个建筑物,矿山和资源。

这些实体将拥有自己的存储库(PlanetRepository,TerritoryRepository,MineRepository,BuildingRepository,ResourceRepository)。

我还想实现一个服务层,其中每个服务都有自己的存储库。

所以,当我说“用一切基本信息给我创造一个星球”时,我的应用程序应该创建一个 planet ,4个区域与该星球相关联,其中3个 mines 每个和2个建筑物和3个资源。 这应该保存在数据库中,因为我想创建所有这些信息,因为它是一个游戏,默认情况下我将创建多个自动化并自行播放的行星。

在这个动作中,我正在使用4个不同的实体和4个存储库。

因为它是REST,所以url应该是(这是示例):

GET / POST api / Planet - 获取所有行星/创建新行星

获取api / Planet / {planetId} / Territory - 从星球ID获取所有地区

GET api / Territory / {territoryId} /我的 - 从领土id获取所有地雷

GET api / Territory / {territoryId} / Building - 从领土id

获取所有建筑物

获取api / Territory / {territoryId} /资源 - 从领土ID

获取所有资源

所以,你能看到,我的TerritoryController有来自3个不同服务(MineService,BuildingService,ResourceService)的依赖关系,并且将来可以有更多。

我的 Territory 模型会有很多信息,它可以有比现在更多的子实体,所以这意味着我的控制器将有很多依赖项,我想抽象所有这些!我仍然找不到最好的解决方案......

那么,解决我的问题的最佳(s)选项或模式是什么?

0 个答案:

没有答案