问题几乎全是.
例如,将默认网址(http://127.0.0.1:8000)更改为自定义(https://api.example.com/v1)
我正在使用HyperlinkedModels,一切似乎都在开发中正常工作.使用自定义URL将应用程序移动到另一台服务器会给我带来麻烦.
如何更改默认网址:
对于一个自定义的,让我们说:
https://api.example.org/v1/
您将两个问题混合在一起:
如何django-rest-framework
在不同的域上运行项目
如何更改API的URL路径
要回答第一个,我会说,"就这么做".Django reverse
使用请求的域来构建绝对URL.
更新:不要忘记Host
从nginx/apache 传递标头.下面是一个示例nginx配置:
server { location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://127.0.0.1:8000; } }
第二个(路径,挂载点)设置在urls.py
:
from django.conf.urls import url, include from django.contrib import admin from rest_framework import routers from quickstart import views router = routers.DefaultRouter() router.register(r'users', views.UserViewSet) router.register(r'groups', views.GroupViewSet) urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')), url(r'^v1/', include(router.urls)), # <-------------- HERE ]