Files
bruno/tests/import/openapi/fixtures/openapi-comprehensive.yaml
Pooja e1b4043ca5 fix: openapi request import (#5586)
* fix: openapi request import
* fix: js sandbox mode selector doesn't show up while opening new collections in playwright tests

---------

Co-authored-by: Bijin Bruno <bijin@usebruno.com>
2025-09-25 13:06:02 +05:30

375 lines
8.9 KiB
YAML

openapi: 3.0.3
info:
title: Comprehensive API Test Collection
description: A comprehensive API for testing OpenAPI v3 imports with various features
version: 2.1.0
contact:
name: API Support
email: support@example.com
license:
name: MIT
url: https://opensource.org/licenses/MIT
servers:
- url: https://api.example.com/v1
description: Production server
- url: https://staging-api.example.com/v1
description: Staging server
- url: http://localhost:3000/v1
description: Development server
security:
- bearerAuth: []
- apiKey: []
paths:
/users:
get:
summary: Get all users
description: Retrieve a paginated list of all users
tags:
- Users
parameters:
- name: page
in: query
description: Page number for pagination
schema:
type: integer
minimum: 1
default: 1
- name: limit
in: query
description: Number of items per page
schema:
type: integer
minimum: 1
maximum: 100
default: 20
- name: filter
in: query
description: Filter users by name or email
schema:
type: string
responses:
'200':
description: List of users retrieved successfully
content:
application/json:
schema:
type: object
properties:
users:
type: array
items:
$ref: '#/components/schemas/User'
pagination:
$ref: '#/components/schemas/Pagination'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
post:
summary: Create a new user
description: Create a new user account
tags:
- Users
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateUserRequest'
responses:
'201':
description: User created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/User'
'400':
$ref: '#/components/responses/BadRequest'
'409':
description: User already exists
/users/{userId}:
get:
summary: Get user by ID
description: Retrieve a specific user by their ID
tags:
- Users
parameters:
- name: userId
in: path
required: true
description: The user ID
schema:
type: string
format: uuid
responses:
'200':
description: User retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/User'
'404':
$ref: '#/components/responses/NotFound'
put:
summary: Update user
description: Update an existing user
tags:
- Users
parameters:
- name: userId
in: path
required: true
description: The user ID
schema:
type: string
format: uuid
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateUserRequest'
responses:
'200':
description: User updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/User'
'404':
$ref: '#/components/responses/NotFound'
delete:
summary: Delete user
description: Delete a user account
tags:
- Users
parameters:
- name: userId
in: path
required: true
description: The user ID
schema:
type: string
format: uuid
responses:
'204':
description: User deleted successfully
'404':
$ref: '#/components/responses/NotFound'
/auth/login:
post:
summary: User login
description: Authenticate user and get access token
tags:
- Authentication
security: [] # No security required for login
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- email
- password
properties:
email:
type: string
format: email
password:
type: string
minLength: 8
responses:
'200':
description: Login successful
content:
application/json:
schema:
type: object
properties:
token:
type: string
expiresIn:
type: integer
user:
$ref: '#/components/schemas/User'
'401':
description: Invalid credentials
/posts:
get:
summary: Get all posts
description: Retrieve all blog posts
tags:
- Posts
parameters:
- name: author
in: query
description: Filter by author ID
schema:
type: string
- name: category
in: query
description: Filter by category
schema:
type: string
responses:
'200':
description: List of posts
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Post'
post:
summary: Create a new post
description: Create a new blog post
tags:
- Posts
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePostRequest'
responses:
'201':
description: Post created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Post'
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
apiKey:
type: apiKey
in: header
name: X-API-Key
schemas:
User:
type: object
properties:
id:
type: string
format: uuid
email:
type: string
format: email
name:
type: string
avatar:
type: string
format: uri
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
CreateUserRequest:
type: object
required:
- email
- name
- password
properties:
email:
type: string
format: email
name:
type: string
minLength: 2
password:
type: string
minLength: 8
avatar:
type: string
format: uri
UpdateUserRequest:
type: object
properties:
name:
type: string
minLength: 2
avatar:
type: string
format: uri
Post:
type: object
properties:
id:
type: string
format: uuid
title:
type: string
content:
type: string
author:
$ref: '#/components/schemas/User'
category:
type: string
publishedAt:
type: string
format: date-time
createdAt:
type: string
format: date-time
CreatePostRequest:
type: object
required:
- title
- content
- category
properties:
title:
type: string
minLength: 5
content:
type: string
minLength: 10
category:
type: string
Pagination:
type: object
properties:
page:
type: integer
limit:
type: integer
total:
type: integer
totalPages:
type: integer
Error:
type: object
properties:
error:
type: string
message:
type: string
code:
type: integer
responses:
BadRequest:
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'