Документация по API SwaggerPython

Программы на Python
Ответить
Anonymous
 Документация по API Swagger

Сообщение Anonymous »

Я видел чванливую документацию по Flask и Django. В Flask я могу спроектировать и документировать свой API, написанный вручную. (Укажите, какие поля являются обязательными, необязательными и т. д. в разделах параметров).

Вот как мы делаем во Flask

class Todo(Resource):
"Describing elephants"
@swagger.operation(
notes='some really good notes',
responseClass=ModelClass.__name__,
nickname='upload',
parameters=[
{
"name": "body",
"description": "blueprint object that needs to be added. YAML.",
"required": True,
"allowMultiple": False,
"dataType": ModelClass2.__name__,
"paramType": "body"
}
],
responseMessages=[
{
"code": 201,
"message": "Created. The URL of the created blueprint should be in the Location header"
},
{
"code": 405,
"message": "Invalid input"
}
]
)


Я могу выбрать, какие параметры включать, а какие нет. Но как мне реализовать то же самое в Django? Документ Django-Swagger в
совсем не хорош. Моя главная проблема — как мне написать свой raw-json в Django.

В Django это автоматизируется, что не позволяет мне настраивать json. Как реализовать то же самое в Django?

Вот файл models.py

class Controller(models.Model):
id = models.IntegerField(primary_key = True)
name = models.CharField(max_length = 255, unique = True)
ip = models.CharField(max_length = 255, unique = True)
installation_id = models.ForeignKey('Installation')


serializers.py

class ActionSerializer(serializers.ModelSerializer):
class Meta:
model = Controller
fields = ('installation',)


urls.py

from django.conf.urls import patterns, url
from rest_framework.urlpatterns import format_suffix_patterns
from modules.actions import views as views

urlpatterns = patterns('',
url(r'(?P[0-9]+)', views.ApiActions.as_view()),
)


views.py

class ApiActions(APIView):

"""
Returns controllers List
"""

model = Controller
serializer_class = ActionSerializer

def get(self, request, installation,format=None):

controllers = Controller.objects.get(installation_id = installation)
serializer = ActionSerializer(controllers)
return Response(serializer.data)


Мои вопросы:

1) Если мне нужно добавить поле, скажите xyz, которого нет в моих моделях, как его добавить?

2) Тихий, аналогичный 1st< /strong>, если мне нужно добавить поле, которое принимает значения ч/б 3 предоставленных значения, то есть раскрывающийся список. как добавить его?

3)
Как добавить необязательное поле? (поскольку в случае запроса PUT я могу обновить только 1 поле, а остальное оставить пустым, что означает необязательное поле).

4) И как мне добавить поле, которое принимает строку json, как это делает этот API?

Спасибо

Я могу делать все эти вещи во Flask, жестко запрограммировав свой API. Но в Django он автоматизирует мои модели, что не дает (как я считаю) доступа к настройке моего API. Во Flask мне просто нужно написать руками свой API, а затем интегрироваться со Swagger. Существует ли то же самое в Django?

Например, мне просто нужно добавить следующий json в мой код Flask и он ответит на все мои вопросы.

# Swagger json:
"models": {
"TodoItemWithArgs": {
"description": "A description...",
"id": "TodoItem",
"properties": {
"arg1": { # I can add any number of arguments I want as per my requirements.
"type": "string"
},
"arg2": {
"type": "string"
},
"arg3": {
"default": "123",
"type": "string"
}
},
"required": [
"arg1",
"arg2" # arg3 is not mentioned and hence 'opional'
]
},


Подробнее здесь: https://stackoverflow.com/questions/214 ... umentation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»