Web应用程序和API之间的区别在哪里?

问题描述 投票:1回答:1

此问题与this over question高度相关。我要问的另一个问题是,我对该主题仍然感到困惑。

我遇到的问题

我目前有一个Django Web应用程序,用户可以在其中拥有自己的兴趣爱好列表,并且每次执行一项兴趣爱好时都可以增加一个计数器。我的问题是,我想将此功能扩展到前端体验之外。换句话说,我希望用户能够使用POST请求增加自己的兴趣爱好,例如,从终端或他们自己的脚本或其他内容中获取。

我很困惑的地方

我必须为我的Web应用程序创建API才能添加此功能吗?

另一种放置方式是,我必须处理与来自其他地方的请求不同的来自前端的请求吗?前端请求会转到URL www.hostname.com/hobbies/1,其他请求是否转到URL www.hostname.com/api/hobbies/1

[如果我确实将POST请求路由到与来自前端的请求(即www.hostname.com/hobbies/1)相同的URL,那么Google怎么会有external APIs for Google Maps?似乎如果其他Web应用程序正在调用Google Maps功能,则Google会将这些实例与其前端分离开了。

django api design-patterns web-applications
1个回答
1
投票

我的问题是,我想将此功能扩展到前端体验。换句话说,我希望用户能够从终端使用POST请求增加自己的兴趣爱好或通过自己的脚本或其他内容。

我是否必须为我的Web应用程序创建API才能添加此功能?

最有可能是。造成这种情况的原因有很多:

1]由于Django的POST,来自终端/脚本的/hobbies/1/请求很可能在您的CSRF protection端点上失败。对于您的应用程序之外的请求,您需要authenticationauthorization不同的类型。

2]针对您的POST端点的/hobbies/1/请求很可能会返回HTML响应,这不是您的终端/脚本想要接收的响应,他们很可能希望接收结构化的数据类型,例如JSON。

组合1)+ 2)将给您/api/hobbies/1/

© www.soinside.com 2019 - 2024. All rights reserved.