小编Aig*_*dir的帖子

如何在 Django REST Framework 中使用自定义 YAML 文件作为 API 文档?

我需要将 API 文档添加到我的项目中。我使用 swagger 编辑器编写了我的自定义架构,现在我有一个 YAML 文件,如下所示:

swagger: "2.0"
info:
  description: "This is the documentation of Orion Protocol API"
  version: "1.0.0"
  title: "Orion Protocol API"
host: "127.0.0.1:8000"
basePath: "/api/"
paths:
  /api/decode:
    post:
      tags:
      - "pet"
      summary: "Decode the payload"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "Packet data"
        required: true
        schema:
          $ref: "#/definitions/PacketData"
      responses:
        "405":
          description: "Invalid input"

  /api/encode:
   post:
     description: "Encoding configuration parameters for the devices"
     produces:
     - "string"
     parameters:
     - in: "body" …
Run Code Online (Sandbox Code Playgroud)

django yaml schema.yml django-rest-framework

6
推荐指数
1
解决办法
864
查看次数

未找到“openapi-schema”的反转。“openapi-schema”不是有效的视图函数或模式名称

我正在尝试使用内置方法记录我的 Django REST API。这是urls.py

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from django.conf.urls import url
from django.views.generic.base import TemplateView
from rest_framework.documentation import include_docs_urls

urlpatterns = [
    path('api/', include('api.urls')),
    path('admin/', admin.site.urls),
    path('', include('main.urls')),
    path('swagger-ui/', TemplateView.as_view(
        template_name='swagger-ui.html',
        extra_context={'schema_url': 'openapi-schema'}
    ), name='swagger-ui'),
    url(r'^.*', TemplateView.as_view(template_name="home.html")),

] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Run Code Online (Sandbox Code Playgroud)

static/templates/swagger-ui.html

<html>
  <head>
    <title>Swagger</title>
    <meta charset="utf-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" type="text/css" href="//unpkg.com/swagger-ui-dist@3/swagger-ui.css" />
  </head>
  <body>
    <div id="swagger-ui"></div>
    <script src="//unpkg.com/swagger-ui-dist@3/swagger-ui-bundle.js"></script>
    <script> …
Run Code Online (Sandbox Code Playgroud)

django django-rest-framework swagger-ui

5
推荐指数
1
解决办法
2574
查看次数

如何与 docker 共享本地 Postgres 数据库?

我有一个带有 PostgreS 数据库的 Django 项目。我需要在 docker 容器中使用我的本地数据库。如何与docker容器共享机器的本地主机?我的 docker-compose.yml

  version: '3'
  services:
    web:
      build: ./
      network_mode: "host"
      command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py collectstatic --noinput --i rest_framework && gunicorn orion-amr.wsgi:application --bind 0.0.0.0:8000 --workers=2"
      ports:
        - "${webport}:8000"
        - "${pgport}:${pgport}"
      env_file:
        - ./.env
Run Code Online (Sandbox Code Playgroud)

Django设置.py :

DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        'NAME': os.environ.get('pgdatabase'),
        'USER': os.environ.get('pguser'),
        'PASSWORD': os.environ.get('pgpassword'),
        'HOST': os.environ.get('pghostname'),
        'PORT': os.environ.get('pgport'),
    }
}
Run Code Online (Sandbox Code Playgroud)

我加了

listen_addresses = '*'  
Run Code Online (Sandbox Code Playgroud)

postgresql.conf文件,下面是我的pg_hba.conf …

django postgresql docker docker-compose

4
推荐指数
1
解决办法
361
查看次数