如何创建可以更新的 API 模板?

How to create an API template that can be updated?

提问人:ScubaSteve 提问时间:7/29/2023 最后编辑:marc_sScubaSteve 更新时间:7/31/2023 访问量:29

问:

我有一个 C# CRUD API,任何想要使用它的人只需要向它添加模型类,它就会对该模型执行基本的 CRUD 操作。当然,类似的项目可能已经这样做了,但这不是这个问题的重点。

我想要什么:

  • 任何人都可以从此 CRUD API 创建新的 API。让我想使用可以分叉的公共 git 存储库、git 模板存储库或 .NET 模板。
  • 可更新,从 CRUD API 创建新 API 后,如果对 CRUD API 进行更新,则新 API 可以拉取这些更新。这将删除 git 模板存储库和 .NET 模板选项。
  • 我想从中创建 API。由于 git 不允许分叉自己的存储库,因此删除了分叉选项。

很高兴有:

  • 能够重命名 API。

唯一满足所有这些要求的解决方案,包括最好的解决方案,就是拥有某种 NPM 包,它访问 git 存储库,获取文件,然后创建或更新新的 API。因此,如果我对 CRUD API 进行了更新,我会将更改推送到 git 存储库,然后将 API 复制到名为文件夹的版本中。然后,我将更新 NPM 包并指向该版本。然后,用户可以更新 NPM 包,该包将替换除 Models 文件夹中的文件之外的所有文件。

如果他们对其他文件进行了更改,并且他们的新 API 受源代码控制,他们可以根据需要比较更改并进行修复。

这似乎是一个非常复杂且容易出错的解决方案。有没有更好的方法可以做到这一点?

C# .NET Git 模板 存储库

评论

0赞 jdweng 7/29/2023
建立连接时,有一个模型在客户端上序列化,然后在服务器上反序列化。客户端和服务器上的模型必须相同。那么,如何在客户端和服务器上动态更改模型呢?
0赞 ScubaSteve 7/30/2023
你是在问我的 API 实际上是如何工作的吗?我的问题基本上是关于如何拥有可更新的 API 模板。我没有专门询问有关我的 API 的任何问题。我只是用它作为一个例子。
0赞 jdweng 7/30/2023
我只是在问一个假设性的问题。如何在客户端和服务器上动态更新模型?您首先必须了解需要在客户端和服务器上更改模型。
0赞 ScubaSteve 7/31/2023
如果询问如何更新从 CRUD API 创建的新 API,它将类似于 NPM 或 Nuget 包。用户要么订阅新版本警报,要么更有可能定期签入,如果他们想要更新,他们可以。如果解决方案是通过分叉,它们只会从上游合并。老实说,我不是 100% 确定你在问什么。

答:

0赞 ScubaSteve 7/31/2023 #1

分叉是每个人的最佳选择,除了我自己。但是,我能够找到此处描述的解决方法:https://mzrimsek.medium.com/fork-your-own-github-repository-19ad4582b50a

让它为自己工作的解决方案是创建一个新的存储库,然后将一个远程添加到我想要从中分叉的存储库(在本例中为我的 CRUD 存储库)。

// clone your new repository
git clone <new repository>.git
// navigate to the repository root
cd <new repository>
// add a reference to your original repository
git remote add upstream <original repository>.git
// pull all code from the original repository
git pull upstream master
// push all code to the new repository
git push origin master
// pull new changes from forked repo
git pull upstream master