Skip to content

Commit dfcf668

Browse files
authored
Merge pull request #361 from p1c2u/fix/django-middleware-error-reponse-validation-fix
Django middleware error response validation fix
2 parents 98c0682 + 7c1824d commit dfcf668

File tree

2 files changed

+34
-6
lines changed

2 files changed

+34
-6
lines changed

openapi_core/contrib/django/middlewares.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,10 @@ def __call__(self, request):
3131
openapi_request = self._get_openapi_request(request)
3232
req_result = self.validation_processor.process_request(openapi_request)
3333
if req_result.errors:
34-
return self._handle_request_errors(req_result, request)
35-
36-
request.openapi = req_result
37-
38-
response = self.get_response(request)
34+
response = self._handle_request_errors(req_result, request)
35+
else:
36+
request.openapi = req_result
37+
response = self.get_response(request)
3938

4039
openapi_response = self._get_openapi_response(response)
4140
resp_result = self.validation_processor.process_response(

tests/integration/data/v3.0/petstore.yaml

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,8 @@ paths:
9393
responses:
9494
'200':
9595
$ref: "#/components/responses/PetsResponse"
96+
'400':
97+
$ref: "#/components/responses/ErrorResponse"
9698
'404':
9799
$ref: "#/components/responses/HtmlResponse"
98100
post:
@@ -403,6 +405,31 @@ components:
403405
default: 400
404406
message:
405407
type: string
408+
StandardError:
409+
type: object
410+
x-model: StandardError
411+
required:
412+
- title
413+
- status
414+
- class
415+
properties:
416+
title:
417+
type: string
418+
status:
419+
type: integer
420+
format: int32
421+
default: 400
422+
class:
423+
type: string
424+
StandardErrors:
425+
type: object
426+
required:
427+
- errors
428+
properties:
429+
errors:
430+
type: array
431+
items:
432+
$ref: "#/components/schemas/StandardError"
406433
ExtendedError:
407434
type: object
408435
x-model: ExtendedError
@@ -430,7 +457,9 @@ components:
430457
content:
431458
application/json:
432459
schema:
433-
$ref: "#/components/schemas/ExtendedError"
460+
oneOf:
461+
- $ref: "#/components/schemas/StandardErrors"
462+
- $ref: "#/components/schemas/ExtendedError"
434463
HtmlResponse:
435464
description: HTML page
436465
content:

0 commit comments

Comments
 (0)