Skip to content

Commit 0e1c863

Browse files
committed
Improve estela generated OpenAPI documentation
Add tags to estela api endpoints. Update generated-api code.
1 parent afa0e02 commit 0e1c863

File tree

20 files changed

+3242
-1466
lines changed

20 files changed

+3242
-1466
lines changed

estela-api/api/views/auth.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,9 @@ def retry_send_verification_email(self, user, request):
4747
send_verification_email(user, request)
4848

4949
@swagger_auto_schema(
50-
methods=["POST"], responses={status.HTTP_200_OK: TokenSerializer()}
50+
methods=["POST"],
51+
responses={status.HTTP_200_OK: TokenSerializer()},
52+
tags=["auth"],
5153
)
5254
@action(methods=["POST"], detail=False)
5355
def login(self, request, *args, **kwargs):
@@ -70,7 +72,9 @@ def login(self, request, *args, **kwargs):
7072
return Response(TokenSerializer(token).data)
7173

7274
@swagger_auto_schema(
73-
methods=["POST"], responses={status.HTTP_200_OK: TokenSerializer()}
75+
methods=["POST"],
76+
responses={status.HTTP_200_OK: TokenSerializer()},
77+
tags=["auth"],
7478
)
7579
@action(methods=["POST"], detail=False, serializer_class=UserSerializer)
7680
def register(self, request, *args, **kwargs):
@@ -149,6 +153,7 @@ def get_queryset(self):
149153

150154
@swagger_auto_schema(
151155
responses={status.HTTP_200_OK: UserProfileSerializer()},
156+
tags=["auth", "profile"],
152157
)
153158
def retrieve(self, request, *args, **kwargs):
154159
user: User = request.user
@@ -172,6 +177,7 @@ def retrieve(self, request, *args, **kwargs):
172177

173178
@swagger_auto_schema(
174179
responses={status.HTTP_200_OK: UserProfileSerializer()},
180+
tags=["auth", "profile"],
175181
)
176182
def update(self, request, *args, **kwargs):
177183
username = kwargs.get("username", "")
@@ -201,6 +207,7 @@ class ChangePasswordViewSet(viewsets.GenericViewSet):
201207
@swagger_auto_schema(
202208
request_body=ChangePasswordSerializer,
203209
responses={status.HTTP_200_OK: TokenSerializer()},
210+
tags=["account"],
204211
)
205212
@action(
206213
methods=["PATCH"],
@@ -245,7 +252,9 @@ def get_parameters(self, request):
245252
return token, user_id
246253

247254
@swagger_auto_schema(
248-
methods=["POST"], responses={status.HTTP_200_OK: TokenSerializer()}
255+
methods=["POST"],
256+
responses={status.HTTP_200_OK: TokenSerializer()},
257+
tags=["account"],
249258
)
250259
@action(
251260
methods=["POST"],
@@ -288,6 +297,7 @@ def request(self, request, *args, **kwargs):
288297
},
289298
),
290299
},
300+
tags=["account"],
291301
)
292302
@action(methods=["GET"], detail=False)
293303
def validate(self, request, *args, **kwargs):
@@ -318,6 +328,7 @@ def validate(self, request, *args, **kwargs):
318328
},
319329
),
320330
},
331+
tags=["account"],
321332
)
322333
@action(
323334
methods=["PATCH"], detail=False, serializer_class=ResetPasswordConfirmSerializer

estela-api/api/views/cronjob.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,15 @@ def get_queryset(self):
5656
description="Cron job tag.",
5757
),
5858
],
59+
tags=["project", "spider", "cronjob"],
5960
)
6061
def list(self, *args, **kwargs):
6162
return super(SpiderCronJobViewSet, self).list(*args, **kwargs)
6263

6364
@swagger_auto_schema(
6465
request_body=SpiderCronJobCreateSerializer,
6566
responses={status.HTTP_201_CREATED: SpiderCronJobCreateSerializer()},
67+
tags=["project", "spider", "cronjob"],
6668
)
6769
def create(self, request, *args, **kwargs):
6870
spider = get_object_or_404(Spider, sid=self.kwargs["sid"], deleted=False)
@@ -101,6 +103,7 @@ def create(self, request, *args, **kwargs):
101103
@swagger_auto_schema(
102104
request_body=SpiderCronJobUpdateSerializer,
103105
responses={status.HTTP_200_OK: SpiderCronJobUpdateSerializer()},
106+
tags=["project", "spider", "cronjob"],
104107
)
105108
def update(self, request, *args, **kwargs):
106109
partial = kwargs.pop("partial", False)
@@ -118,6 +121,7 @@ def update(self, request, *args, **kwargs):
118121

119122
@swagger_auto_schema(
120123
responses={status.HTTP_204_NO_CONTENT: "Cronjob deleted"},
124+
tags=["project", "spider", "cronjob"],
121125
)
122126
def destroy(self, request, *args, **kwargs):
123127
instance = self.get_object()
@@ -131,7 +135,9 @@ def perform_destroy(self, instance):
131135
instance.save()
132136

133137
@swagger_auto_schema(
134-
methods=["GET"], responses={status.HTTP_200_OK: SpiderCronJobSerializer()}
138+
methods=["GET"],
139+
responses={status.HTTP_200_OK: SpiderCronJobSerializer()},
140+
tags=["project", "spider", "cronjob"],
135141
)
136142
@action(methods=["GET"], detail=True)
137143
def run_once(self, request, *args, **kwargs):

estela-api/api/views/deploy.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ def get_queryset(self):
4040
@swagger_auto_schema(
4141
request_body=DeployCreateSerializer,
4242
responses={status.HTTP_201_CREATED: DeployCreateSerializer()},
43+
tags=["project", "deploy"],
4344
)
4445
def create(self, request, *args, **kwargs):
4546
project = get_object_or_404(Project, pid=self.kwargs["pid"])
@@ -74,6 +75,7 @@ def create(self, request, *args, **kwargs):
7475
@swagger_auto_schema(
7576
request_body=DeployUpdateSerializer,
7677
responses={status.HTTP_200_OK: DeployUpdateSerializer()},
78+
tags=["project", "deploy"],
7779
)
7880
def update(self, request, *args, **kwargs):
7981
if not request.user.is_superuser:

estela-api/api/views/job.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ def get_queryset(self):
8080
description="Job tag.",
8181
),
8282
],
83+
tags=["project", "spider", "job"],
8384
)
8485
def list(self, *args, **kwargs):
8586
return super(SpiderJobViewSet, self).list(*args, **kwargs)
@@ -95,6 +96,7 @@ def list(self, *args, **kwargs):
9596
],
9697
request_body=SpiderJobCreateSerializer,
9798
responses={status.HTTP_201_CREATED: SpiderJobCreateSerializer()},
99+
tags=["project", "spider", "job"],
98100
)
99101
def create(self, request, *args, **kwargs):
100102
spider = get_object_or_404(Spider, sid=self.kwargs["sid"], deleted=False)
@@ -146,6 +148,7 @@ def create(self, request, *args, **kwargs):
146148
@swagger_auto_schema(
147149
request_body=SpiderJobUpdateSerializer,
148150
responses={status.HTTP_200_OK: SpiderJobUpdateSerializer()},
151+
tags=["project", "spider", "job"],
149152
)
150153
def update(self, request, *args, **kwargs):
151154
partial = kwargs.pop("partial", False)

estela-api/api/views/job_data.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ def get_paginated_link(self, page_number):
8585
required=False,
8686
),
8787
],
88+
tags=["project", "spider", "job", "job-data"],
8889
)
8990
def list(self, request, *args, **kwargs):
9091
page, data_type, mode, page_size = self.get_parameters(request)
@@ -193,6 +194,7 @@ def list(self, request, *args, **kwargs):
193194
required=True,
194195
),
195196
],
197+
tags=["project", "spider", "job", "job-data"],
196198
)
197199
@action(methods=["POST"], detail=False)
198200
def delete(self, request, *args, **kwargs):

estela-api/api/views/project.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ def perform_create(self, serializer):
7474
@swagger_auto_schema(
7575
request_body=ProjectUpdateSerializer,
7676
responses={status.HTTP_200_OK: ProjectUpdateSerializer()},
77+
tags=["project"],
7778
)
7879
def update(self, request, *args, **kwargs):
7980
partial = kwargs.pop("partial", False)
@@ -137,6 +138,7 @@ def update(self, request, *args, **kwargs):
137138

138139
@swagger_auto_schema(
139140
responses={status.HTTP_204_NO_CONTENT: "Project deleted"},
141+
tags=["project"],
140142
)
141143
def destroy(self, request, *args, **kwargs):
142144
instance = self.get_object()
@@ -166,6 +168,7 @@ def perform_destroy(self, instance):
166168
),
167169
],
168170
responses={status.HTTP_200_OK: ProjectJobSerializer()},
171+
tags=["project"],
169172
)
170173
@action(methods=["GET"], detail=True)
171174
def jobs(self, request, *args, **kwargs):
@@ -205,6 +208,7 @@ def jobs(self, request, *args, **kwargs):
205208
),
206209
],
207210
responses={status.HTTP_200_OK: ProjectCronJobSerializer()},
211+
tags=["project"],
208212
)
209213
@action(methods=["GET"], detail=True)
210214
def cronjobs(self, request, *args, **kwargs):
@@ -227,6 +231,7 @@ def cronjobs(self, request, *args, **kwargs):
227231
@swagger_auto_schema(
228232
methods=["GET"],
229233
responses={status.HTTP_200_OK: ProjectUsageSerializer()},
234+
tags=["project"],
230235
)
231236
@action(methods=["GET"], detail=True)
232237
def current_usage(self, request, *args, **kwargs):
@@ -258,6 +263,7 @@ def current_usage(self, request, *args, **kwargs):
258263
),
259264
],
260265
responses={status.HTTP_200_OK: UsageRecordSerializer(many=True)},
266+
tags=["project"],
261267
)
262268
@action(methods=["GET"], detail=True)
263269
def usage(self, request, *args, **kwargs):

estela-api/api/views/spider.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ def get_queryset(self):
2626
@swagger_auto_schema(
2727
request_body=SpiderUpdateSerializer,
2828
responses={status.HTTP_200_OK: SpiderUpdateSerializer()},
29+
tags=["project", "spider"],
2930
)
3031
def update(self, request, *args, **kwargs):
3132
partial = kwargs.pop("partial", False)

0 commit comments

Comments
 (0)