我正在使用Geodjango构建简单的GIS系统。
该应用程序显示一组地图,并尝试为这些地图提供RESTFUL API。
我面临一个决定,是为API创建一个单独的应用程序还是在现有的应用程序中工作。
这两个应用程序在逻辑上是分离的,但它们共享相同的模型。
那么什么被认为更好呢?
我正在使用Geodjango构建简单的GIS系统。
该应用程序显示一组地图,并尝试为这些地图提供RESTFUL API。
我面临一个决定,是为API创建一个单独的应用程序还是在现有的应用程序中工作。
这两个应用程序在逻辑上是分离的,但它们共享相同的模型。
那么什么被认为更好呢?
@hspandher的回答很好,可以实现你大部分的需求。
然而,还有一种方法可能更复杂,但能为您提供实验和可重用性潜力:
分离一切:
后端:
将API与其可视化(请参见下面的前端)隔离开来,并使其完全自主和自包含。
这可以通过在Django项目中分离应用并公开相应的API来实现,这些API必须是外部因素(例如客户端、另一个应用程序等)与您的任何应用程序“交谈”的唯一方式。
前端:
假设您已经公开了API,您有效地将可视化与逻辑分离,因此您有多种选项来可视化您的地图。 例如,您现在可以构建一个React应用程序,该应用程序可以向您的API发出请求,并通过使用以下任何工具之一来可视化响应:leaflet.js、D3.js或任何您喜欢的工具。
总结:
这种分离的好处是:
顺便提一下,您可以阅读有关12因素方法,并考虑在实施中使用它。