此问题与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会将这些实例与其前端分离开了。
我的问题是,我想将此功能扩展到前端体验。换句话说,我希望用户能够从终端使用POST请求增加自己的兴趣爱好或通过自己的脚本或其他内容。
我是否必须为我的Web应用程序创建API才能添加此功能?
最有可能是。造成这种情况的原因有很多:
1]由于Django的POST
,来自终端/脚本的/hobbies/1/
请求很可能在您的CSRF protection端点上失败。对于您的应用程序之外的请求,您需要authentication和authorization不同的类型。
2]针对您的POST
端点的/hobbies/1/
请求很可能会返回HTML响应,这不是您的终端/脚本想要接收的响应,他们很可能希望接收结构化的数据类型,例如JSON。
组合1)+ 2)将给您/api/hobbies/1/
。