如何只为服务器和客户端定义一次URL?

时间:2019-09-01 21:02:08

标签: django angular server routes client

大家!我正在构建一个Web应用程序,即服务器-客户端应用程序。对于两者之间的交互,我必须在后端和前端都定义两次URL(硬编码字符串),这将使以后的更改变得困难,因为这需要在两个位置而不是一个位置更改代码。

我正在使用DjangoAngular,因此我正在寻找一种方法来一次指定后端端点,然后理想地将其读取并用于 Angular生产版本强>。因此,仅需重新构建端点即可更改端点,而无需进一步更改。

是否应该在某个.cfg文件中定义这些文件,并在服务器启动时由后端读取它们,也许以某种方式将它们添加到Angular's build process中?任何建议都会有所帮助,因为几乎每个webapp项目中都存在这种冗余,并且必须有一个更聪明的解决方案!

谢谢您的帮助!

2 个答案:

答案 0 :(得分:1)

在这里,后端应用程序拥有并定义到实体的url映射。多个客户端可能会使用同一API进行消费,例如Web客户端,Android客户端和iOS客户端。在此设置中,后端是url映射的关键所在,应将客户端应用程序配置为使用后端应用程序中定义的url映射。

执行此操作的一种可能方法是在后端应用程序的路径上的后端中提供已定义的url,并让客户端应用程序使用那里提供的数据自行配置。例如,如果默认情况下,在API的根路径(“ /”)上使用Django Rest Framework,则将提供资源以及资源的url映射。您可以使用这种机制在构建时配置客户端应用程序。

答案 1 :(得分:1)

有多少个端点,您有多大可能改变它们?最有可能的是,您将总是不得不进行多于一个地方的更改,因为更改端点的原因通常是您尝试发布或获取新数据结构。这意味着您无论如何都必须更改该请求过程,以处理新的数据类型或所发布的内容。

此外,请考虑一下其中一些公共可用的api-它们不会为您提供可提供可用路由的配置文件的终结点。当他们更改其端点时,通常会创建一个版本化的api,以便消费者可以在自己的时间内进行升级。

我认为,除非您正在计划一个大型Web应用程序,否则我不会太担心尝试实现这样的事情。