Skip to content

Commit e7bcb80

Browse files
authored
Merge pull request #13 from akirachix/feature/swagger
created swagger API documentation for Zeno
2 parents c5913f6 + 2f690dc commit e7bcb80

File tree

4 files changed

+32
-27
lines changed

4 files changed

+32
-27
lines changed

api/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
from django.contrib.auth import authenticate
77
from users.models import User, Review
88
from agents.models import Agent, Tool
9+
from runs.models import Run, RunInputFile, RunOutputArtifact
910
from conversations.models import Conversation, Step
1011
from .serializers import UserSerializer, ReviewSerializer, AgentSerializer, ConversationSerializer, ToolSerializer, StepSerializer, RunInputFileSerializer, RunOutputArtifactSerializer, RunSerializer
1112
from .permissions import IsAdmin
12-
from runs.models import Run
1313
import threading, time, random
1414

1515
class ConversationViewSet(viewsets.ModelViewSet):

requirements.txt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,18 @@ black==24.8.0
33
click==8.1.8
44
django==4.2.24
55
djangorestframework==3.15.2
6+
drf-yasg==1.21.10
7+
inflection==0.5.1
68
mypy-extensions==1.1.0
79
packaging==25.0
810
pathspec==0.12.1
911
pillow==10.2.0
1012
platformdirs==3.4.0
11-
sqlparse==0.5.3
12-
typing-extensions==4.13.2
1313
psycopg==3.2.9
1414
psycopg2-binary==2.9.10
15-
whitenoise==6.7.0
16-
17-
18-
15+
pytz==2025.2
16+
pyyaml==6.0.2
17+
sqlparse==0.5.3
18+
typing-extensions==4.13.2
19+
uritemplate==4.1.1
20+
whitenoise==6.7.0

zeno/settings.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@
4343
'rest_framework.authtoken',
4444
'agents',
4545
'conversations',
46-
'runs'
46+
'runs',
47+
'drf_yasg',
48+
4749
]
4850

4951

zeno/urls.py

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,26 @@
1-
"""
2-
URL configuration for zeno project.
3-
4-
The `urlpatterns` list routes URLs to views. For more information please see:
5-
https://docs.djangoproject.com/en/5.2/topics/http/urls/
6-
Examples:
7-
Function views
8-
1. Add an import: from my_app import views
9-
2. Add a URL to urlpatterns: path('', views.home, name='home')
10-
Class-based views
11-
1. Add an import: from other_app.views import Home
12-
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
13-
Including another URLconf
14-
1. Import the include() function: from django.urls import include, path
15-
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
16-
"""
171
from django.contrib import admin
18-
from django.urls import path,include
19-
from django.conf import settings
2+
from django.urls import path, include, re_path
3+
from rest_framework import permissions
4+
from drf_yasg.views import get_schema_view
5+
from drf_yasg import openapi
206

7+
schema_view = get_schema_view(
8+
openapi.Info(
9+
title="Zeno AI API",
10+
default_version='v1',
11+
description="API documentation for Zeno AI - Economic Reasoning System",
12+
contact=openapi.Contact(email="support@zenoai.com"),
13+
license=openapi.License(name="BSD License"),
14+
),
15+
public=True,
16+
permission_classes=[permissions.AllowAny],
17+
)
2118

2219
urlpatterns = [
2320
path('admin/', admin.site.urls),
2421
path('api/', include('api.urls')),
25-
]
22+
# --- Swagger and Redoc docs ---
23+
re_path(r'^swagger(?P<format>\.json|\.yaml)$', schema_view.without_ui(cache_timeout=0), name='schema-json'),
24+
path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
25+
path('redoc/', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
26+
]

0 commit comments

Comments
 (0)