Skip to content

Commit

Permalink
feat: Add v3 examples (#842)
Browse files Browse the repository at this point in the history
  • Loading branch information
Amzani authored Nov 24, 2023
1 parent 4612fe0 commit 47a28fd
Show file tree
Hide file tree
Showing 9 changed files with 1,187 additions and 486 deletions.
38 changes: 24 additions & 14 deletions apps/studio/src/examples/ibmmq.yml
Original file line number Diff line number Diff line change
@@ -1,32 +1,42 @@
asyncapi: 2.6.0
asyncapi: 3.0.0
info:
title: Record Label Service
version: 1.1.0
description: This service is in charge of processing music
license:
name: Apache License 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
url: 'https://www.apache.org/licenses/LICENSE-2.0'
servers:
production:
url: 'ibmmq://localhost:1414/QM1/DEV.APP.SVRCONN'
host: 'localhost:1414'
pathname: /QM1/DEV.APP.SVRCONN
protocol: ibmmq-secure
description: Production Instance 1
bindings:
ibmmq:
cipherSpec: ANY_TLS12
channels:
song/released:
publish:
operationId: publish
message:
$ref: '#/components/messages/song'
subscribe:
operationId: subscribe
message:
$ref: '#/components/messages/song'
songReleased:
address: song/released
messages:
Song:
$ref: '#/components/messages/Song'
operations:
receiveSong:
action: receive
channel:
$ref: '#/channels/songReleased'
messages:
- $ref: '#/components/messages/Song'
sendSong:
action: send
channel:
$ref: '#/channels/songReleased'
messages:
- $ref: '#/components/messages/Song'
components:
messages:
song:
Song:
payload:
type: object
properties:
Expand All @@ -44,4 +54,4 @@ components:
description: Primary song genre
length:
type: integer
description: Track length in seconds
description: Track length in seconds
7 changes: 7 additions & 0 deletions apps/studio/src/examples/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import invalid from './tutorials/invalid.yml';
// real world examples
import slack from './real-world/slack-rtm.yml';
import gitterStreaming from './real-world/gitter-streaming.yml';
import kraken from './real-world/kraken-api-request-reply-filter.yml';

const templateTypes = {
protocol: 'protocol-example',
Expand Down Expand Up @@ -74,5 +75,11 @@ export default [
description: () => <>Gitter Streaming API from https://stream.gitter.im. Using HTTP protocol.</>,
template: gitterStreaming,
type: templateTypes.realExample
},
{
title: 'Kraken Websockets API',
description: () => <>This Kraken Websocket specification. Using Websocket with request / reply</>,
template: kraken,
type: templateTypes.realExample
}
];
272 changes: 143 additions & 129 deletions apps/studio/src/examples/real-world/gitter-streaming.yml
Original file line number Diff line number Diff line change
@@ -1,164 +1,178 @@
asyncapi: '2.6.0'
id: 'urn:com:gitter:streaming:api'
asyncapi: 3.0.0
id: 'tag:stream.gitter.im,2022:api'
info:
title: Gitter Streaming API
version: '1.0.0'

version: 1.0.0
servers:
production:
url: https://stream.gitter.im/v1
host: stream.gitter.im
pathname: /v1
protocol: https
protocolVersion: '1.1'
security:
- httpBearerToken: []

- $ref: '#/components/securitySchemes/httpBearerToken'
channels:
/rooms/{roomId}/{resource}:
rooms:
address: '/rooms/{roomId}/{resource}'
messages:
chatMessage:
$ref: '#/components/messages/chatMessage'
heartbeat:
$ref: '#/components/messages/heartbeat'
parameters:
roomId:
description: Id of the Gitter room.
schema:
type: string
examples:
- 53307860c3599d1de448e19d
examples:
- 53307860c3599d1de448e19d
resource:
enum:
- chatMessages
- events
description: The resource to consume.
schema:
type: string
enum:
- chatMessages
- events
subscribe:
bindings:
http:
type: response
message:
oneOf:
- $ref: '#/components/messages/chatMessage'
- $ref: '#/components/messages/heartbeat'

operations:
sendRoomInfo:
action: send
channel:
$ref: '#/channels/rooms'
bindings:
http:
method: POST
messages:
- $ref: '#/components/messages/chatMessage'
- $ref: '#/components/messages/heartbeat'
components:
securitySchemes:
httpBearerToken:
type: http
scheme: bearer
messages:
chatMessage:
schemaFormat: 'application/schema+yaml;version=draft-07'
summary: >-
A message represents an individual chat message sent to a room.
They are a sub-resource of a room.
A message represents an individual chat message sent to a room. They are
a sub-resource of a room.
payload:
type: object
properties:
id:
type: string
description: ID of the message.
text:
type: string
description: Original message in plain-text/markdown.
html:
type: string
description: HTML formatted message.
sent:
type: string
format: date-time
description: ISO formatted date of the message.
fromUser:
type: object
description: User that sent the message.
properties:
id:
type: string
description: Gitter User ID.
username:
type: string
description: Gitter/GitHub username.
displayName:
type: string
description: Gitter/GitHub user real name.
url:
type: string
description: Path to the user on Gitter.
avatarUrl:
type: string
format: uri
description: User avatar URI.
avatarUrlSmall:
type: string
format: uri
description: User avatar URI (small).
avatarUrlMedium:
type: string
format: uri
description: User avatar URI (medium).
v:
type: number
description: Version.
gv:
type: string
description: Stands for "Gravatar version" and is used for cache busting.
unread:
type: boolean
description: Boolean that indicates if the current user has read the message.
readBy:
type: number
description: Number of users that have read the message.
urls:
type: array
description: List of URLs present in the message.
items:
schemaFormat: application/schema+yaml;version=draft-07
schema:
type: object
properties:
id:
type: string
description: ID of the message.
text:
type: string
format: uri
mentions:
type: array
description: List of @Mentions in the message.
items:
description: Original message in plain-text/markdown.
html:
type: string
description: HTML formatted message.
sent:
type: string
format: date-time
description: ISO formatted date of the message.
fromUser:
type: object
description: User that sent the message.
properties:
screenName:
id:
type: string
userId:
description: Gitter User ID.
username:
type: string
userIds:
type: array
items:
type: string
issues:
type: array
description: 'List of #Issues referenced in the message.'
items:
type: object
properties:
number:
description: Gitter/GitHub username.
displayName:
type: string
description: Gitter/GitHub user real name.
url:
type: string
description: Path to the user on Gitter.
avatarUrl:
type: string
format: uri
description: User avatar URI.
avatarUrlSmall:
type: string
format: uri
description: User avatar URI (small).
avatarUrlMedium:
type: string
format: uri
description: User avatar URI (medium).
v:
type: number
description: Version.
gv:
type: string
meta:
type: array
description: Metadata. This is currently not used for anything.
items: {}
v:
type: number
description: Version.
gv:
type: string
description: Stands for "Gravatar version" and is used for cache busting.
description: Stands for "Gravatar version" and is used for cache busting.
unread:
type: boolean
description: Boolean that indicates if the current user has read the message.
readBy:
type: number
description: Number of users that have read the message.
urls:
type: array
description: List of URLs present in the message.
items:
type: string
format: uri
mentions:
type: array
description: List of @Mentions in the message.
items:
type: object
properties:
screenName:
type: string
userId:
type: string
userIds:
type: array
items:
type: string
issues:
type: array
description: 'List of #Issues referenced in the message.'
items:
type: object
properties:
number:
type: string
meta:
type: array
description: Metadata. This is currently not used for anything.
items: {}
v:
type: number
description: Version.
gv:
type: string
description: Stands for "Gravatar version" and is used for cache busting.
bindings:
http:
$ref: '#/components/messageBindings/streamingHeaders'

headers:
type: object
properties:
Transfer-Encoding:
type: string
const: chunked
Trailer:
type: string
const: \r\n
heartbeat:
schemaFormat: 'application/schema+yaml;version=draft-07'
summary: Its purpose is to keep the connection alive.
payload:
type: string
enum: ["\r\n"]
schemaFormat: application/schema+yaml;version=draft-07
schema:
type: string
enum:
- "\r\n"
bindings:
http:
$ref: '#/components/messageBindings/streamingHeaders'

messageBindings:
streamingHeaders:
http:
headers:
'Transfer-Encoding': 'chunked'
Trailer: '\r\n'
headers:
type: object
properties:
Transfer-Encoding:
type: string
const: chunked
Trailer:
type: string
const: \r\n
Loading

0 comments on commit 47a28fd

Please sign in to comment.