我需要将 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 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) 我有一个带有 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 …