►
From YouTube: AsyncAPI Onboarding - Part 4 - AsyncAPI in Action
Description
https://github.com/asyncapi/community/issues/415
- Creating AsyncAPI file
- What can you do with the file, some possible use cases
A
Good
afternoon
welcome
to
part
four
of
asking
api
onboarding
workshop
and,
as
usual,
I
will
not
start
immediately.
I
need
to
double
check
if
the
live
stream
started
actually
and
send
some
links
to
the
live
stream
to
the
community,
so
they
can.
A
They
can
join
so
if
you're
already
watching
live
thanks
for
joining,
go
to
our
youtube
channel,
please,
if
you're
watching
on
some
different
media
like
twitch
and
leave
a
comment
in
a
live
chat,
say
hi
or
you
can
join
this
zoom
call
if
you
want,
because
the
stream
goes
through
the
through
this.
A
So
in
the
meantime,
like
just
give
me
a
few
moments.
A
A
A
The
idea
is
that
I
will
explain
how
to
how
the
theory
is
presented
in
the
justin
rp
files-
hey
pedro
thanks
for
joining
man,
hi
lukas,
how
you
doing.
A
I'm
for
now,
like
then
still
sharing
some
things
on
them
on
slack,
giving
people
time
to
join,
because
the
plan
is
that
today,
I'm
gonna
like
in
life,
create
an
asking
api
file
and
best,
if
everyone
does
it
on
their
own
in
their
editors.
A
A
And
also
for
others
like
it's
like
pedro
joint
others
can
also
join.
So
if
you
have
some
questions
during
the
workshop,
you
can
ask
them
live
and
even
though
it
might
look
like
it's,
this
live
stream.
Zoom
room
is
not
only
for
bald
guys.
If
you
have
a
lot
of
hair
on
your
heads,
you
can
also
join
like.
So
it's
not
only
for
us.
A
A
So
as
a
reminder
like
this
is
part
four
of
the
onboarding,
even
though
I
planned
three
parts
but
yeah,
it
just
requires
more
time.
If,
if
we
want
to
slowly
like
introduce
every
concept
in
the
announcing
dpi
and
even
driven
architectures,
but
the
plan
is
that
today
is
really
the
last
part.
So
even
if
one
hour
will
be
not
enough,
I
I
will
push
and
I
will
just
simply
continue.
A
So,
of
course
you
don't
have
to
watch
longer
than
an
hour
because
it's
recorded,
but
I
just
don't
want
to
like
this
last
part.
A
I
want
to
keep
it
together,
even
if
it's
going
to
take
1
hour
30
minutes,
but
the
good
news
is
that
another
async
api
live
stream
starts
in
in
two
hours,
so
I
I
cannot
talk
longer
than
two
hours,
so
at
least
there
are
some
boundaries,
so
the
link
I
will
share
in
I
just
sent
in
a
youtube
live
chat,
link
to
the
workshop
and
quick
recap
from
last
live
stream.
So
during
the
live,
the
last
live
stream.
I
introduced
async
api.
Yes,
at
live
stream
number
three.
A
I
started
talking
about
asking
api
not
sooner,
and
I
basically
explained,
from
my
perspective,
all
the
most
important
features
and
bits
and
pieces
in
async
api
that
you
should
be
aware
of.
A
It
took
an
the
whole
hour
and
today,
when
I
will
be
like
creating
this
asking
api
file
live
and
you
will
basically
you
will
be.
I
will
be
explaining
like
every
single
line
that
I
add
I
will
be
referring
to
my
previous
live
stream.
To
kind
of
you
know
like
first,
I
talked
about
theory
now
practice
and
let's
connect
the
dots.
A
So
it's
it's
not
just
theory,
but
actually
in
practice.
You
see
the
feature
in
action
what
it
gives
so.
A
So,
from
the
script
perspective,
we
are
in
a
script
called
async
api
step
by
step
so
from
the
script.
It
is
number
five
on
the
list,
so
we
start
with
number
five.
So
please.
A
A
I
think
that
still
it
is
not
labeled
as
asking
api
owned,
but
it's
in
the
it's
I
think
ivan
is
still
the
owner,
but
he
donated
the
the
plugin
a
long
time
ago
to
the
initiative
and
we're
actually
in
the
process
of
taking
over
the
brand.
So
it's
clear
it
belongs
to
us
in
api
and
it's
and
it's
pretty
refreshed.
So
it's
using
already
the
react
components
that
we
use
for
rendering
documentation.
A
So
you
can
try
with
vs
code
extension.
If
you
do
not
like
uis.
I
definitely
recommend
you
asking
api
studio
because
I'm
going
to
be
using
asking
api
studio
during
the
live
stream,
but
you
can
also
use
simple
editor
and
then,
for
example,
as
an
api
cli
to
just
validate
the
document
or
if
you
like
java
and
you
are
into
intellij
ide,
then
there
is
also
a
community
built
plug-in
for
for
intellij.
A
As
far
as
I
know,
it
does
not
support
latest
async
api
version,
but
it
shouldn't
be
a
big
problem,
just
just
use
2.0.0
but
yeah
again
asking
api
studio
to
the
to
the
moon.
I
definitely
recommend
you
to
use
that
now.
Just
give
me
a
moment,
I'm
gonna
move
the
the
live
chat
to
the
site,
so
I
see
it
and
we're
already
ready
to
go
the
the
asking
api
file
that
we
will
be
creating
in
the
ui.
A
It
is
an
async
api
file
that
I
created
last
year.
It's
for
some
to
have
some
dummy
example.
It's
called
shrek
up
and-
and
it's
basically
somehow
relating
to
the
first
diagram
you
could
see
on
one
of
my
first
live
streams
when
I
was
explaining
asynchronous
and
there
was
shrek
and
the
donkey.
So
that's
why
it's
a
shrek
up
the.
So,
let's
start,
let's,
let's,
let's
actually
stop
talking,
because
I'm
talking
a
lot,
so
that's
the
that's
the
studio
so
studio.askingapi.com.
A
I
think
it's
large
enough.
If
not,
then
just
dropping
me
a
message
folks.
So
it's
like
like
a
classical
editor.
So
you
have
that's
where
we
put
our
asking
api
document
and
on
the
right
we
will
see
how
documentation
start
is,
is
getting
generated
after
we
provide
data
on
the
left,
so
we
always
and
yeah
the
first,
the
first
we
need
to
decide.
As
I
said
during
the
last
live
stream.
Async
api
is
machine,
readable,
yaml
or
json.
A
So
you
can
write
these
documents
in
the
yaml
format,
where
you
need
to
be
just
careful
about
identitation
or
you
can
invite
it
in
json,
where
you
just
have
to
be
super
careful
about
curly,
braces
and
quotation
marks.
So
I
definitely
I
can't
imagine
someone
choosing
freely
using
json,
so
we
will
use
yaml
and
if
we're
using
yaml,
then
yeah,
it's
it's
cleaner,
you're
gonna
see
that
the
document
is
much
cleaner
and
first
information
that
we
need
to
provide.
When
writing
asking
api
file
is
the
async
api
file
version
so.
A
A
Maybe
it's
not
an
app
it's
a
spec,
but
it
also
evolves
and
it's
versioned
and
it's
versioned
under
semantic
versioning
and
we
regularly
release
new
excuse
me
new
versions
of
it
every
three
four
months
next
release
is
scheduled
for
september.
A
So
you
need
to
be
also
always
careful
about
like
what
version
you
want
to
use.
Of
course,
the
best
is,
if
you
always
use
the
latest
so
yeah,
that's
the
that
was
the.
That
was
the
easiest
one
line.
Next
one
is
the
info
object
in
the
async
api
document,
so
you
can
like
info
object,
holds
information
about
the
application.
A
So
again,
going
back
to
the
script
from
last
last
week
I
told
you
that,
like
the
the
basic
concept
for
using
api
file,
two
dot
version,
2x
version
is
that
we
describe
the
interface
of
the
of
the
application
that
user
can
interact
with.
A
So,
that's
why
we
need
to
provide
the
information
about
the
app
they
need
to
know.
What's
the
name
of
the
app,
so
people
need
to
know,
what's
the
title
of
the
app.
A
And
that's
that's
the
that's
the
minimum
you
have
to
provide,
which
means
title
and
the
version
they're
critical.
This
is
this
is
like
critical
information.
Therefore,
in
the
spec
we
specify
that
information
like
title
and
version
is
required.
If
you
do
not
provide
it,
the
the
file
will
not
go
through
the
validation.
It
will
be
an
invalid
document.
So
yeah
keep
that
in
mind
and
before
before
we
do
the
more
information
in
the
document.
A
Let's
just
do
something
like
this,
so
we
basically
want
to
get
rid
of
all
these
red
lines
and
errors
because,
as
you
can
see
like
the
document,
while
writing
the
document,
it's
real
time
validated.
A
So
that's
why
we
are
basically
getting
errors
that
we
are
missing
some
additional
fields,
because
it's
not
just
in
it's
not
only
asking
api
info
with
title
and
version
required
channels
also
has
to
be
there,
but
it
can
be
empty
and
that's
like
that's
the
most
minimum
asking
api
document
not
very
much
useful,
but
yeah
we're
fixing
it
simply
this
way.
So
simply
we
can
already
see
rendered
documentation
on
the
right.
So,
for
now
we
just
have
the
title
and
the
version.
A
We
definitely
need
to
provide
more
information
for
the
app.
So
that's
what
the
description
is
for.
A
And
I'll
just
copy
paste,
because
I
have
long
description
in
my
example
that
is
in
the
script,
and
it's
simply
to
show
you
to
to
present
one
of
the
features
that
we
support
in
descriptions
in
asking
api,
which
is
like
we
can
also
in
the
yum
file,
provide
multi-line
scripts
and
we
support
that.
The
descriptions
are
written
with.
A
Excuse
me
are
written
with
markdown,
so
that's
pretty
pretty
critical,
but
I
think
that
dancing
shrek
all
the
time
on
the
right
will
be
super
annoying.
So,
let's,
let's
remove
that
green
monster
for
a
sec,
okay
cool.
So
we
have
the
the
basic
information
for
the
user
like
what's
the
title
of
the
app?
What's
the
version
that
they're
interacting
interacting
with
and
in
the
description
now,
the
next
information
you
want
to
know
is
how
you
can
actually
connect
to
the
api.
A
So
in
this
case-
and
this
example
is
based
on
the
application-
that
is
a
websocket
server,
so
we
basically
need
to
specify
like
what's
the
url
of
the
server
and
what
protocol
is
used
in
that
in
that
application
in
that
application.
So
it's
a
object
called
servers
and
you
can
have
multiple
servers
because
you
can
have,
for
example,
multiple
instances
of
the
application
in
different
environments
like
you
can
have
a
test
environment
where
you're
just
testing
application
and
it's
not
available
to
public
or
you
can
have
a
production
server.
A
So
you
can
have
multiple
servers.
You
just
need
to
provide
the
name
so
swamp
and
yeah
url
and
in
our
case
like
it's,
just
gonna
be
localhost
because,
like
it's
not
it's
not
a
real
application,
it's
not
hosted
anywhere,
so
we
don't
have
any
real
url.
We
are
able
need
to
start
this
application
locally
on
a
localhost
which
is
also
valid
url
and
the
protocol
is,
is
ws,
which
is
scheme
name
for
websocket.
A
A
So
that's
already
giving
me
something,
but
so
far
what
I
know
from
from
this
document
is
the
the
name
of
the
app
the
version
of
the
app
and
how
to
connect
to
it
and
there's
no
security,
which
is
which
is
cool.
A
I
mean
it
makes
it
easier
to
connect,
but
actually
what
I
can
connect
to
like
what
are
the
channels.
A
So
what
are
the
connection
points
available
there
in
the
server
that
I
can
get
messages
from
and
like
basically,
what
messages
I
can
actually
get
from
the
from
the
system,
so
we're
gonna
do
something
like
this
and
we're
gonna
define
two
channels.
A
But
we're
just
gonna
provide
names,
so
it's
chat.
A
And
and
that's
it,
we
will
not
provide
more
because
yeah
again,
I'm
biased
and
that's
how
basically,
I
would
design
my
application.
That's
how
I
would
write
as
an
api
file
for
my
application
that
I
don't
know
yet
how
it's
gonna,
how
the
api
will
be
structured
because,
like
the
first
thing,
I'm
actually
thinking
about
is
the
messages
how
the
what
messages
will
be
available
in
the
system.
I
only.
A
I
only
have
this
like
foundation,
information
that
I
know
that
the
server
will
be
available
like
we'll
have
chat
functionality,
but
it
also
will
provide
the
status
of
the
travel
and
we're
talking
about
the
travel
and
not
sure
if
you
know
why
I'm
mixing
shrek
and
travel.
A
If
you
know
this
scene
when
donkey
is
asking
shrek,
are
we
there
yet
are
we
there
yet?
Are
we
there
yet?
So
that's
the
reason.
It's
not
related
to
flight
status.
At
all
example,
from
the
first
live
stream,
so
yeah,
I
know
that
the
server
will
have
two
functionalities,
but
the
main
information
I
want
to
know
like
is
how
the
the
message
for
the
chat
will
look
like
how
how
the
message
will
look
like
for
for
travel
status.
A
So
that's
why
I
always
recommend-
and
it's
also
a
good
practice
because
automatically
you
think
about
better
structure
of
asking
api
document
and
sharing
information,
and
so
I
always
recommend
to
start
with
components,
because
components
is
a
it's
an
object
in
using
api
document
that
allows
you
to
like
put
a
lot
of
messages,
put
a
lot
of
schemas
and
then
sometimes
you
might
have
a
situation.
That
schema
is
the
same
for
two
different
messages,
so
we
can
reference
instead
of
duplicating
information.
A
Last
week
we
were
talking
about
one
of
the
very
important
features
which
and
optimization
of
the
structure
of
the
information
in
the
document,
which
is
json
reference,
so
yeah.
We
will
definitely
use
it
here,
so
the
information
we
put
in
the
components
and
then
we
can
reference
them
in
other
places
and
before
I
continue
there's
a
question
in
youtube.
I'm
assuming,
if
someone
once
wants
to
document
an
async
api,
they
should
have
a
total
understanding
of
what
and
how
the
api
will
display
messages
in
the
system.
A
Right,
yes,
and
no
like
like
basically
yes
to
provide
us
an
api
document
with
good
data.
You
first
need
to
have
this
data,
but
but
asking
api
and
open
api
and
other
specs
they
allow
they
enable
you
to
actually
design
the
application.
So
so
it
depends.
So
if
you're
writing
asking
api
document
for
existing
api,
then
yes,
you
have
to
know
first,
how
the
messages
look
like,
so
you
can
describe
them,
but
sometimes
like,
for
example,
with
this.
This
asking
api
document
shrek
app
when
I
was
creating
it
last
year.
A
I
didn't
have
my
app.
I
didn't
have
my
api,
so
I
was
designing
it
basically
like
I
was
like
experimenting.
How
the
message
would
look
like
then
I
was,
I
could
see
it
in
documentation,
so
I
I
did
not
have
a
info,
how
the
message
looks
like
prior,
creating
the
async
api
file.
Asking
api
file
actually
enabled
me
to
to
make
them
to
work
on
this
design
and
brainstorming.
A
A
And
there
will
be.
A
Let's
call
the
chat
message
and
yes,
the
best
practice.
A
A
Looking
message
that
you
can
imagine.
It's
not
very
complex
structure
of
the
message,
because
the
payload
of
the
message
is
of
type.
A
String
and
it's
and
that's
it
and
you
can
see
already
like,
even
though
I
don't
have
yet
operations
defined,
I
don't
know
yet
if
there's
any
publishing
or
subscribing
available,
but
I
already
can
see
the
messages
in
the
that
are
in
the
system.
So
I
can
already
like
tab
again
answer
your
question
additionally,
like
again
during
designing,
I
don't
know
how
the
message
looks
like
and
it
helps
me
like
to
visualize
and
see
like
because
it's
much
different
when
you
read
yaml
and
when
you
read
actually
beautiful
docs.
A
I,
like
my
personal
feeling
not
based
on
any
science,
is
I
think
that
just
the
brain
works
differently
and
understands
things
differently
and
it's
just
much
clearer
to
read
it.
This
way
then
read
it
that
way
and
looking
at
the
message
summary
that's
that's
obvious
what
the
summary
is
for
about
the
the
payload,
so
the
payload
comes
from
again
last
week
we
talked
about
you,
see
even
examples
here,
so
we
talked
about
schema
of
the
message.
A
I
try
to
explain
like
what
it's
for
like
it's,
that
you
can
easily
validate,
then
the
messages.
So
you
basically
the
schema,
tells
you
like
how
the
message.
A
Actually,
sorry,
this
that's
the
actual
message
and
that's
the
example
schema.
So
in
the
schema
you
can
say:
okay,
there
should
be
display
name
and
it
should
be
string,
there
should
be
email
and
the
type
is
object.
So
that's
what
payload
here
is
like.
So
in
the
payload
we
say
that
the
type
of
the
message
is
string.
It's
not
even
an
object,
it's
just
a
simple
string
message,
so
that's
payload.
A
What
payload
is
referring
to
and
by
default,
I'm
not
specifying
any
specific
schema
format
like
avro
or
anything
like
this,
so
by
default
and
tooling,
assumes
that
the
schema
that
I'm
using
here
is
asking
api
schema,
which
not
sure
if
you
remember
from
the
last
live
stream.
It's
a
super
set
of
json
schema.
So
it's
basically
json
schema
with
some
additional
fields
or
some
modifications
in
the
in
the
spec.
A
And
there's
a
question:
could
someone
please
share
this
message?
Schema
markdown
file
with
me
here
yeah
I
can
show
you
actually
the
whole.
Actually,
whatever
I'm
doing
is
the
step-by-step
instruction
that
is
available
here,
just
confirm
if
you
got
the
link
okay,
so
we
have
pretty
simple
message,
but
now
it's
again
it's
a
simple
message:
the
the
next
message,
the
message
related
to
trouble
status.
It's
gonna,
be
it's
gonna,
be
an
object.
A
It's
not
gonna
be
a
simple
string,
so
so
yeah,
let's,
let's
just
write
that
it's
gonna
be
called
travel
info.
A
A
First,
define
the
example,
so
in
asking
api
you
can
also
provide
messages,
example
and,
and
that's
what
we're
gonna
do.
You
can
provide
multiple
examples.
A
So
the
message
payload
and
why
we
need
to
explicitly
say
payload,
because
you
can
also
have
message
headers
in
some
protocols
they
are
supported,
but
not
in
case
of
websockets.
So
that's
why
we
don't
have
an
example
of
a
header
here,
but
normally
I
would
just
have
to
specify
that
it's
an
example
for
header
and
the
payload.
A
The
distance
and
let
me
just
copy
the
description,
the
example
so
the
distance,
we'll
say,
for
example,
like
beyond
the
seven
mountains
and
seven
forests
and
arrival
so
information
when
you
arrive.
A
So
I
know
that
my
my
message.
The
basic
example
is
that
there
will
be
for
sure
three
three
properties
and
they
all
will
be
string,
nothing
more
complicated
and
now
I
can
actually
go
to
describe
description
of
the
schema,
which
is
again
like
much
much
more
complicated
than
simple
string.
A
So
we
introduce
another
component
object,
which
is
not
only
messages
but
can
be
also
schemas
and
in
schemas
we
will
define
a
schema
for
travel
data.
Let's
call
it
travel
data,
it's
just
an
id
and
the
type
is
not
string,
it's
object.
So
if
it's
object
and
as
you
can
see-
sometimes
it's
just
enough
to
say
that
it's
going
to
be
an
object
and
that's
it
you
don't
specify
any
properties.
A
A
Excuse
me
and
yeah.
I
will
copy
paste
description
because
not
I'm
not
the
first
sniper
and
we
need
to
say
okay,
if
it's,
if
destination
property,
that's
the
description
and
we
need
to
say
it's
type,
which
is
string.
A
And
I
will
just
copy
paste
the
rest,
so
we
do
the
same
with
the
rest
of
the.
A
Of
the
properties,
as
you
can
see,
with
yaml
pain
is
the
identitation.
If
you
don't
keep
it
correct.
A
It
is
throwing
a
lot
of
errors.
A
A
And
yeah
in
yaml
copy
pasting
can
also
cause
a
lot
of
headaches
yeah.
So
you
can
see
already
the
message.
One
two
and
the
schemas
is
available.
So
there's
a
travel
data
and
you
can
see
that
as
a
user
of
documentation,
I
can
clearly
see
like
what
how
my
object
should
be
structured
and
and
like
in
this
view.
A
A
So
I
have
the
schema
and
I
have
the
message
but
how
to
connect
them
like
how
actually
say
that
this
schema
is
for
that
message,
and
this
is
what
again
this
feature
that
we
were
talking
about.
A
Dollar,
ref
and
in
dollar
ref
excuse
me:
we
have
to
provide
the
basically
a
reference
link
kind
of
linked
to
the
to
the
schema,
so
we
can
see
that
we
provide
a
string
information
that
starts
with
hashtag.
A
That
indicates
that
the
reference
inside
the
document,
because
we
can
also
have
references
to
outside
documents-
and
we
say
okay
in
the
components
so
here
in
schemas,
so
here
just
take
travel
data
and
basically,
during
the
referee
referencing
when
we
parse
the
document,
even
though
here
you
don't
see
information
about
payload,
but
just
the
reference,
but
in
the
final
document
that
async
api
documentation
generator
uses,
payload
is
available,
so
it
can
be
rendered
in
the
ui.
A
Like
so,
the
dereferencing
is
basically
moving
things
between,
of
course,
pasting
kills
document.
So
so
that's
what
we
have
already
so
we
we
have
schema
for
the
message
we
have
both
messages
described.
A
We
have
example
of
the
more
complex
message,
so
we
so
we
managed
to
design
like
what
what
messages
will
be
available
in
the
system.
Now
we
need
to
say
like
which
ones
you
can
actually
send
to
the
system
to
the
api
or
which
ones
you
can
just
read
from
the
from
the
api
and
that's
what
operations
are
for
with
two
dot
x
versions.
A
Operations
are
inside
channels
and
you
have
to
like
they're
when
you
start
describing
the
channel.
You
actually
start
with
the
name
of
the
operation,
so
there
are
two
operations
subscribe
and
publish.
A
So
again,
last
week
I
tried
to
talk
about
this
issue.
Semantic
issue
we
have
with
publish
subscribe
so
again,
like
just
just
remember
that
when
you
think
about
saying
that
the
api
can
publish
or
subscribe,
you
always
have
to
describe
it
for
the
user.
That
will
use
the
api.
So
when
I
will
write
here
subscribe
and
and
then
put
summary.
A
Then
it
means,
if
I
and
let's
say
I
don't
provide
more
information,
then
it
means
for
the
user
that
the
user
can
actually
subscribe
to
this
particular
channel,
not
that
the
shrek
app
is
kind
of
subscribing
to
the
channel
in
case
of
websocket,
it's
easier
to
understand,
because
websocket
is
kind
of
broker
and
in
case
with
broker-centric
applications,
that's
much
more
much
more
complex.
That's.
Why
just
remember
about
this
semantics
issue?
A
I
will
specify
operation
id,
which
is
for
just
like
information
about
message.
Sorry,
like
for
information
about
the
the
api,
it's
only
needed,
basically
when
you
think
about
coding
and
code
generation,
because
the
operation
id
is
something
that
while
you
generate
code,
you
should
use
for
the
for
the
names
of
the
of
the
functions.
A
Now
in
the
as
you
can
see,
we
don't
have
yet
the
the
chat
connected
with
the
chat
message,
so
things
that
are
encompa
under
components
can
also
belong
to
channels.
So
so
I
basically
say
message
and
I
don't
have
to
again
provide
all
the
information
about
the
message,
but
I
use
dollar
ref
again
and
in
dollar
ref
again,
I
point
to
components,
messages,
chat
message
and
it
looks
like
this
and
you
can
see
in
the
generated
documentation
that,
like
finally,
I
got
some
operation,
a
user
can
see
that
there's
a
chat
channel.
A
What's
the
operation
id
and
and
and
yeah
you
can
see
what
messages
are
available
under
this
given
channel
now
the
case
with
chat
is
that
you
usually
send
a
message
and
receive
the
message
right.
It's
a
it's
a
chat.
So
so
you
can
also.
A
A
Not
only
just
read
messages,
but
you
can
also
like
so
subscribe
to
messages,
but
you
can,
as
a
user
of
the
api,
also
send
messages
so
publish
messages
and
I'll
just
copy
paste,
because
it's
basically
it's
basically
the
same
just
just
the
operation.
Id
name
is
different
and
of
course
the
summary
but
yeah
with
publish
client
can
receive
chat
messages.
A
A
You
simply
define
the
message
once
because
for
both
operations,
it's
the
same,
so
you
can
reference
it
twice.
It's
the
same
like
with
coding
like
you,
don't
write
the
same
function
twice,
you
just
put
it
in
utils
and
then
and
then
we
use
the
function
here.
We
just
reuse
the
information.
A
Now
if
it
comes
to
travel
status,
I
cannot
send.
I
don't
want
anyone
to
send
any
messages
to
the
to
the
api.
I
only
want
people
to
subscribe.
A
So
I
want
donkey
only
to
be
able
to
to
get
messages,
and
so
he
cannot
poke
me
and
ask
me
for
messages.
He
can
just
wait
or
it
can
just
wait
for
the
messages.
A
Pretty
much
a
lot
and
everything
like
from
the
basic
information
perspective.
So
as
a
user
of
the
api,
I
know
what
it's
for.
I
know
what
the
how
to
connect
to
it.
A
I
know
what
operations
I
can
perform
with
the
api,
how
to
connect
and
what
messages
I
can
receive
or
send
to
the
api
and
how
they
look
like.
What's
the
schema
which
is
perfect
now
now
we
will
do
something
more
something
that
again
like
last
week,
we
talked
about
the
killer
feature
of
asking
api,
which
is
that
asking
api's
protocol
agnostic.
A
So
you
can
see
that,
even
though
the
application
that
I
was
writing
here
is
for
websocket,
but
there's
nothing
websocket
specific
in
in
this
document,
like
nothing
like.
Basically
all
is
super
generic
that
you
need
to
know
from
about
any
api,
no
matter
what
the
protocol
it's
using,
but
I
need
to
provide
some
additional
information
just
for
websocket
and
that's
where
we
use
bindings,
so
this
kind
of
micros
specifications
for
a
given
protocol
that
we
use
at
using
api.
A
So
we
basically
need
to
specify,
on
the
channel
level,
on
the
channel
level
that
the
travel
status
when
I'm
connecting
the
travel
status.
I
want
to
specify
that
this
particular
excuse
me
this
particular
channel.
I
can
put
some
query
parameters
when
connecting
to
the
server
and
with
the
query
parameter.
I
can
specify
that
I
want
only
status
from
a
given
destination,
so
let's
say
not
all
the
destinations,
but
just
one-
and
I
could
like
my
api-
could
support
something
like
this.
A
So,
let's,
let's
go
below
subscribe.
A
Bindings
and
first
thing
you
do
with
bindings,
you
say
which
binding
you're
using,
which
is
a
websocket
in
this
case,
and
again
like
the
first
one.
The
first
information
is
this
binding
version
because
yeah
it's
it's
like
with
the
spec
as
an
api,
spec
has
versions,
and
this
specification
that
have
also
their
individual
versions.
They
are
not
bound
to
asking
api
version
so
yeah,
let's
use
the
the
zero
one
and,
let's
specify
the
query.
A
So,
just
to
quickly
give
you.
A
Oh
yeah,
and
we
know
that,
there's
a
channel
binding
available.
I
know
what
kind
of
details
I
can
provide
and
I
know
that
there
I
can
provide
a
query
property
in
the
schema
and
I
can
see
use
here.
A
schema
object
to
describe
to
describe
what
what
values
I
can
put
in
the
query
when
connecting
to
the
to
the
server.
A
A
So
there
will
be,
there
will
be
one
query
parameter
available
so
again
like
let's
just
copy
paste
a
bit
because
yeah
we
know
it's,
it
must
be
an
object
it
definitely
doesn't
have
to.
But
it's
recommended
that
it
has
a
description
and
it
has
to
have
properties,
and
we
know
that
there
will
be
one
query
parameter,
which
is.
A
Storage,
because
now
we
have
studio.
A
A
A
A
A
Okay,
so
we're
back,
there's,
probably
something
with
the
parser
or
on
in
the
studio
that
it
didn't
like
that.
I
broke
the
document
in
the
way
I
I
don't
want
to
try
to
break
it
again,
but
I
think
it's
because
I
didn't
have
this
part
and
it
failed.
So
yeah,
that's
what
sorry.
A
A
So
that
was
what
I
was
missing
when
the
document
broke
the
studio.
So
I
specified
that
like
according
to
the
schema
of
websocket
my
binding,
I
can
specify
that
basically,
whenever
somebody
connects
to
the
travel
status,
they
can
also
do
something
like
this.
A
This
is
why
you
have,
and
it's
needed
only
for
websocket.
That's
why
you
have
websocket
binding
and
the
specific
feature
here
that
allows
you
to
specify
the
query
and
then
again
it's
available
in
the
documentation.
So
I
know
that
travel
status
have
some
specific
websocket
information,
and
I
know
that
I
have
a
query
available
and
it
can
it's
a
destination
and
the
value
is
destination.
A
It's
about
airport
code,
so
I
specify
that
I
want
to
have
updates
only
for
from
a
given
airport.
That's
it
if
it
comes
to
bindings.
A
So
something
to
like
I'd
like
to
emphasize
again
like
remember,
asking
api.
Spec
itself
is
protocol
agnostic
and
it
has
its
own
version
and
is
released
separately
from
the
bindings.
Every
single
binding
has
its
own
spec
kind
of
like
it.
It
has
like
async.
Apis
back
is
a
markdown
file.
A
The
bindings
are
also
have
also
marked
them
files
that
specify
what
what
you
can
provide
for
a
specific
protocol,
and
sometimes
there
are
different
code
owners
and
maintainers
for
bindings
that
the
maintainers
for
for
the
main
spec,
because,
like
again
like
in
even
driven
architectures,
there's
a
like
extremely
high.
A
A
Yeah
extensions,
so,
okay,
again
last
year,
last
year
and
last
week
I
talked
about
another
asking
happy
future,
which
is
the
extensibility
so
basically,
which
means
that
I
cannot
just
provide
whatever
I
want
in
as
an
api
document.
I
cannot
just
say
I
don't
know
like.
A
Whatever
I
can't
just
add
new
property-
it's
it's
it's
not
allowed
unless
I
do
it
this
way,
but
then
it's
just
like
here
in
documentation,
it's
ignored.
We
don't
know
this
extension
and
that
somebody
would
use
like
we
in
some
fields.
A
We
do
render
extensions
that
we
use
when
we
that
we
see
in
the
document,
but
yeah.
That's.
I
don't
think
it's
a
topic
for
this
for
this
workshop
for
this
onboarding.
Just
remember
that,
like
these
extensions,
we
want
to
there's
a
extension.
Catalog
repository,
nothing
api
and
we
want
to
kind
of
try
to
help
community
share
extensions
and
also
push
for
the
solution
that
to
add
a
new
feature
in
the
spec.
You
actually
first
add
it
as
an
extension.
A
We
see
how
it's
used
by
the
community
and
then
we
can
pull
it
into
the
main
spec.
So
but
extensions
can
also
be
used
like
it's.
A
I
know
like,
for
example,
from
the
presentation
from
walmart
from
last
year
that
they
provide
some
additional
information
that
are
walmart,
specific,
so
extensions
that
they
will
not
share
with
others
that
they
will
not
even
push
for
the
spec,
because
it's
somehow
really
like
super
specific
for
their
architecture
for
their
solution
and
they
just
do
x
and
they
do
the
pattern
like
x
and
something
and
that
the
same
would
be
with
any
other
company.
It's
just
the
practice
that
they,
I
think
that
started
using
when
open
api
was
introduced.
A
So
yeah.
So
just
remember,
like
simply
the
example
I
have
here.
Is
that,
like
I'd
like
to
know
as
a
reader
of
documentation
that,
when
I
subscribe
to
chat
message
that
I
will
receive
also
in
res
what
I
will
receive
in
the
response
that
there
there
will
be
response,
not
direct
still,
I
think,
but
that
there
will
be
response.
So
I
can,
for
example,
using
I
can
do
it
using
the
extension.
A
Chat
message:
oh
yeah,
I
already
have
it
here
because
I
copied
the
correct
document,
so
I
just
add
additional
fields
x,
response
put
the
description
and
say,
like
response
will
be
available
here
in
the
in
the
payload
of
the
message
so
and,
as
I
said
like,
sometimes
we
do
support
them
in
the
in
the
docs
rendering
and
render
them
as
as
good
as
we
can.
Even
though
we
don't
know.
What's
the
schema
of
of
this
given
object.
A
A
So
in
the
script
that
I
linked
in
the
in
the
chat,
there's
an
example:
a
link
to
an
example
in
kafka,
based
example,
where
traits
are
used
so
I'll
just
quickly
show
it
to
you.
A
Okay,
so
you
can
see
this
example
of
asking
api
document
where
you
can
see
something
like
operation
trades
and
use,
and
it
says
like
kafka,
so
the
name
of
the
of
the
trade
and
then
that
you
want
to
reuse,
but
it's
different
kind
of
reuse.
So
let
me
just
show
you
first
how
it's
referred
to.
A
Okay,
so
you
can
see,
for
example,
there's
a
channel
some
channel
on
the
on
the
broker.
We
know
that,
with
this
application,
we
can
subscribe
to
this
channel
to
receive
information
and
it's
kafka
and
the
client
id
everywhere
will
be
the
same.
So
you
so.
You
want
to
reuse,
binding
information
here
under
every
under
every
operation,
but
with
reference.
It
would
not
look
that
nice,
so
you
basically
say
okay
trades
for
this
operation.
A
There
are
some
trades
point
to
the
trade
and
it
basically
means
what
what
what
will
happen
in
the
parser
is
that
we
okay.
We
know
that
in
this
given
operation,
we
need
to
take
from
this
location,
this
trade
and
this
entire
field
will
be
like
injected
in
the
in
the
in
the
operation.
A
So
it
will
not
be
like
with
reference.
It
would
usually
be
like
you
know
like
like
with
simple
referencing.
It
would
be
embedded
under
trades,
but
it's
trades.
It's
not
simple
references,
so
the
whole
binding
information
will
actually
be
injected
between,
like
on
the
same
level,
that
other
properties,
like
name
title
summary.
A
Because
with
words,
it's
yeah
master
of
copy
pasting.
A
Okay,
so
again
like
let's
say
this
first,
so
you
can
see
every
operation
has
this
trait
reference
right.
A
So,
let's
see
light,
measured,
lightning,
measured,
lightning,
measured,
that's
clear,
and
we
can
see
that
there
is
operation,
specific
information
about
kafka
and
the
client
id,
and
here
you
can
see,
there's
nothing
about
kafka
and
client
id.
We
just
have
a
reference
to
operation
trades
kafka,
so
you
can
see
that
whatever
we
see
rendered
here
under
operation
is
exactly
the
same
thing
that
is
provided
here.
A
So
it's
just
so
trades
like
are
like
again
it's
a
it's
a
feature
for
better
or
organization
of
your
of
your
asking
api
document
for
reusability
and
something
a
bit
different
than
ref.
So
yeah.
You
need
to
know
what
you're
using
for
what.
But
again
it's
just
about,
not
writing
the
same
stuff
twice
but
reuse.
A
And
one
thing
I
didn't
show
you
I
think
I
mentioned
but
didn't
show
you
was,
but
it's
not
possible
in
the
studio
like
studio,
is
a
web
app.
We
don't
yet
support
references
to
external
files
in
the
file
system,
but
yeah.
You
have
an
example
of
of
asking
api
file
here
where
the
reference
you
can
see,
it's
doesn't
start
with
pound,
key
or
or
hashtag,
but
it
starts
with
just
actually
pointing
out
that
it's
a
relative
relative
path
to
some
file
and
a
specific
property
inside
the
file.
A
A
So
yeah
that
would
be
it
if
it
comes
to
creation
step
by
step
and
we
managed
to
do
it
in
one
hour,
but
that's
not
yet
everything.
So,
let's
go
back
again.
A
A
So
I
hope
you
managed
to
get
them
get
there
where
I
am,
you
can
see
documentation
rendered,
but
now
the
most
important
question
like.
Why
do
we
even
do
that.
A
Okay,
so
so
you
basically
went
through
the
hell
of
writing
the
yam
file.
You
could
already
see
like
it's
like
it's
nicer
than
jy
than
jason,
but
it
has
also
this
stuff
that
pains
a
lot.
A
I
I
have
constantly
issues
with
pasting
copy
pasting,
the
parts
of
the
ammo,
so
you
need
to
be
very
careful
about
idention.
So
there
is
a
huge
of
community
of
people
that
basically
hate
yamu,
but
it's
there's
nothing
better,
and
so
you
went
through
the
horror
of
writing
the
yam
fight.
You
went
through
the
horror
of
actually
learning
the
specification
because
to
write
the
yam
file.
A
You
need
to
know
what
is
there,
of
course
we
have
some
examples
that
help
you
to
kick
off
and
like
just
copy
paste
and
then
modify,
but
you
still
need
to
learn
the
spec
and
what
can
you
do
with
it
like?
You
could
see
already
like
I'm
describing
my
app,
and
this
allows
me
to
generate
docs
but
like?
A
Is
it
really
worth
it?
Like?
I
mean
I
think
it's
that
was
stupid.
Question
like
I
think
it's
actually
worth
it
like,
even
for
documentation
but
documentation.
You
can
also
write
by
hand,
of
course,
with
using
asking
api.
You
don't
have
to
worry
about
the
structure
of
the
document
style
of
the
document,
because
the
documentation
generator
will
do
it
for
you
but
like
if
you
already
went
through
hell
of
writing,
not
something
so
beautiful,
but
writing
something
so
yum
full
that
the
machine
can
understand
and
give
you
nice
documentation.
A
Then
why
not
use
it
for
different
use
cases.
So
definitely
don't
stop
with
dogs.
Dogs,
I
think,
should
be
always
the
the
first
goal,
the
first
step,
because
that's
the
easiest
to
achieve
now.
You
ride
the
fight.
You
get
the
dogs,
but
then
push
the
boundaries
and
try
to
try
to
use
this
async
api
documents
for
more,
because
if
machine
can
understand
it,
that
much
more
can
be
done
and
like
one
of
the
use
cases
is
real-time
message:
validation.
A
Let
me
actually
just
link
you
to
maybe
I'm
not
going
to
link
you
to
this
up
to
this.
Repos
just
have
a
look
at
them
later.
It
might
be
just
too
technical,
but
basically
real-time
message.
Validation
is
where
it's
not
about
validating
as
an
api
document.
It's
that
just
just
just
look
on
information
that
you
have
available
in
the
asking
ip
document.
A
You
have
the
information,
the
schema
of
the
message.
You
know
exactly
how
it
should
look
like,
so
it's
not
only
for
documentation
reasons
that
you
create
this
schema.
It
can
also
be
used
in
in
the
runtime
of
the
application
when
it's
running
when
you
validate
incoming
message
like
so
so,
let's
see,
I'm
writing
an
application
that
is
subscribing
to
the
travel
information
data,
and
I
want
that.
My
application
that
reads
the
messages
checks.
A
If
the
incoming
messages
message
looks
as
it
should
look
like
if
it
has
destination,
if
it
has
distance
and
if
it
has
an
arrival
and
if
the
type
of
the
information
is
string
like
what
I
would
have
to
do,
if
I
don't
have
a
schema,
I
would
have
to
write
everything
with
code
like
manually
provide
validation
code
that
checks
incoming
payload
destination.
Is
it
string
okay,
then?
A
If
distance
is
string
or
not,
if
arrival
is
string
or
not,
then
now
approve
it
or
drop
an
error
that
instead
of
type
string,
I
got
integer,
I
would
have
to
code
it
all
and
what
schema
is
for
actually
for
for
validation.
So
there
are
libraries
that
you
can
put
your
schema
through
the
library
get
validation
code
out
of
the
box
and
then
validate
the
message.
The
information,
the
object
against
the
schema
and
the
validation
library
will
handle
the
validation
because
everything
it
needs
to
have
is
in
the
schema.
A
A
A
A
A
Okay,
let's
just
copy
the
document
and
create
it
directly.
A
And
let's
run
some,
the
generator
that
will
using
the
async
api
file
will
generate
entire
node.js
application.
Basing
on
the
async
api
yaml
file,
which,
out
of
the
box
by
default,
will
have
validation
of
the
messages
included.
A
A
Okay
generated
okay,
we
see
the
application
got
generated
now.
Npm
install
sorry,
npm
install,
let's
clear
the
screen.
A
And
we
have
already
another
window
here:
okay
and
pm
start
oh
wrong
and
pm
start,
so
you
can,
like
I
mean,
can
be
there
a
better
example
like
what
you
can
do
with
us
in
the
api
document.
You
see
that
I
was
able,
when
I
just
have
an
asking
api
document
ready
there
is.
There
are
some
projects
available
for
in
the
community.
A
I
could
like
really
super
quickly
generate
a
real
application
and
I
know
that
I
can
subscribe
to
it
and
it's
an
mqtt
application.
Now,
let's,
let's
interact
with
the
app
oh.
A
Not
start
the
mosquito
broker,
so
we
have
to
fix
that
yeah.
We
need
only
the
mqtt
library
I
have
it
installed
already
and
just
have
a
look
have
a
look
at
at
the
message.
A
So
I'm
sending
a
a
message
to
a
broker,
mqtt
broker
to
light,
measured,
light,
measured
channel
and
I'm
sending
a
message
that
I
know
from
the
docs
that
it
that
it
has
to
have
an
id
integer,
lumens
integer
and
send
at
a
field
with
the
date
and
in
a
specific
format.
A
I
can
send
it
and
it's
gonna
be
received,
and
it's
like
like
here,
you
can
see
we
have
console
logs
in
the
in
the
app,
so
we
console.log
that
the
app
received
a
message
from
the
broker
with
this
information.
Now
the
cool
stuff.
Is
that
this,
this
runtime
validation
of
messages
of
the
against
the
schema
is
already
can
be
already
plugged
in
into
the
code
generator
and
in
case
of
this
node.js
app
template.
It's
just
plugged
in
so
so
you
basically
you
have
to
do
you
don't
have
to
do
anything.
A
A
And
that's
it
like.
We
were
able
real
time
using
the
library
that
walid
pre
provided
to
to
yeah,
validate
that
the
message
is
wrong:
what's
wrong
about
it
and
to
reject
the
message
and
not
process
it
anymore.
A
So
that's
that's.
What
real
time
message
and
validation
is
it's
what
this
library
is
doing?
It's
basically
reading
asking
api
document.
So
when
the
message
comes
in
into
the
system,
it
can
read
from
us
in
api
document,
all
the
schemas
that
are
available
for
a
given
channel
and
then
just
validate
out
of
the
box,
but
there
are
also
other
scenarios
like-
and
this
is
for
node.js
this
here
in
this
project-
that
sergio
is
working
on
it's
part
of
the
gateway.
A
So
it's
not
even
a
library
that
is
used
by
the
app,
but
it's
next
to
the
app.
A
Now,
discoverability
of
traffic
so
like
like
imagine,
there
are
two
types
of
companies:
small,
smart,
app,
startup
and
huge
corporation
simplified
world
in
small
startup.
You
have
just
few
microservices,
probably
at
the
beginning,
not
very
complex,
not
many
people
easy
to
share
information
in
huge
corporation
you
can
have
like,
and
I
was
there.
I
know
there
can
be
even
10
different
teams
working
on
the
same
product
and
each
can
have
multiple
different
micro
services
and
they
communicate
through
even
driven
architecture.
A
How
someone
can
know
what
messages
are
available
in
the
whole
system?
What's
going
through
the
broker?
What's
happening
like
what
microservices
we
have
and
that's
what
someone
can
do
with
with
asking
api
documents
so
because,
if
you
treat
this
seriously
like
you
have
an
example,
for
example
of
this
social
media
where
to
provide
a
social
media
product,
you
have
to
have
multiple
different
services:
uis
backends,
like
service
for
comments
only
and
etc,
etc.
So
you
have
multiple
lasting
api
files.
A
So
if
you
have
multiple
async
api
files,
you
can
define
some
some
rules
like
okay.
So
if
I
have
two
asking
api
files
and
two
of
them
have
servers
and
both
of
them
point
to
the
same
server,
I
can
connect
them.
I
can,
I
can
say:
okay,
they
they
both
are
connected.
So
I
can
analyze
these
two
documents
and
provide
a
kind
of
diagram.
For
example-
and
here
you
have
the
simplest
example
of
of
of
diagram,
that
is
not
the
most
beautiful,
but
that's
just
what
you
get
out
of
the
box.
A
You
can
always
style
it
properly.
So
we
can
see
that,
like
basing
on
few
asking
api
documents,
you
can
actually
run
it
through
some
library
analyze
check
what
information
you
have
in
these
documents,
where
they
match
if
it
comes
to
na,
comes
to
the
name
of
the
channels
etc.
So
you
can
actually
generate
the
whole
architecture
of
your
of
your
microservices.
You
know
how
and
how
they
communicate,
and
you
basically
know
that
if
you
will
unplug
comment
service,
that
something
can
be
broken
across
the
whole
architecture.
A
So
that's
super
helpful
and-
and
we
know
that
users
look
into
this
use
case
a
lot
especially
kafka
users,
design
first
use
case-
that's
something
I
already
actually
did
throughout
this
whole
onboarding,
so
creating
async
api
file
for
not
existing
application.
I
was
designing
the
app
not
having
it
yet.
So
that's
that's
what
that's
what
you
can
do
normally
without
the
spec
to
to
design
the
app
to
see
the
docs,
I
would
just
have
to
write
it
from
scratch
and
then
again
you
can
imagine
a
group
of
10
teams.
A
A
That
can
already
read
messages
right,
so
you
can
imagine
that
I
can
write
multiple
async
api
documents
in
the
in
the
documents
design
that
they
communicate
with
each
other
through
a
broker
on
a
given
channel,
and
then
I
can
actually
generate
all
these
apps
and
and
actually
start
them
and
actually
do
some
stuff
and
like
generate
some
messages,
some
fake
messages
and
that's
what,
for
example,
microx
is
doing
that.
You
just
provide
some
examples
and
basically,
on
the
examples,
microx
will
actually
start
generating
these
messages
like
send
them
to
the
broker.
A
So
we
can
actually
see
how
messages
behave,
how
how
many
messages
you're
getting
in
the
system,
etc.
You
can
prototype
everything
test
everything
without
writing
a
single
line
of
code
except
of
the
code
where,
if
you
are
not
using
microx,
you
might
want
on
your
own,
to
to
write
some
loops
that
generate
messages.
That's
it.
So
that's
that's
like
kick-ass
stuff
really
and
like
you
can
see
on
the
on
the
scale
of
of
adoption
of
my
crocs
that
it's
super
popular
now
the
code
generation.
A
I
could
show
you,
but
also
it's
not
just
about
generating
the
whole
application.
You
can
generate
also
some
client
libraries
from
asking
api
files,
but
you
can
also.
A
Wait
I
have
to
first
yeah
into
a
proper
location
where
I
have
asking
api
dot
yaml,
so
you
can
see
that,
like
yeah
travel,
data
class
typescript
class
got
generated
like
for
you
out
of
the
box
so
again
time
saver,
especially
in
type
in
type
languages,
and
I
that's
why.
For
example,
I
don't
like
typing
languages
because
there's
a
lot
of
boiler
plate
codes,
but
if
you
can
generate
it,
then
it's
super
nice.
A
And
last,
I
can
also
tell
you
like
that
we
know
from
the
presentations
of
others
like
walmart,
but
it's
also
the
same
with
adio.
It's
also
the
same
with
a
new
bank
of
new
zealand.
What
they
do
is
that
internally,
because
they
have
a
lot
of
communication
done
over
even
driven
architectures,
they
they
provide
the
whole
self-service
platforms
where,
where,
where
teams
don't
have
to
even
talk
to
each
other,
like
scrum
master
from
team,
a
doesn't
have
to
go
to
scrum
master
of
team
b
and
ask
them
like
hey?
A
A
You
can
like
collect
the
information
about
all
the
messages
put
them
in
one
event,
catalog.
So
so,
basically,
developer
doesn't
care
basically
about.
Is
it
shrek
up
or
some
different
app
sending
the
message,
because
for
them
it's
irrelevant
for
them
relevant
is
the
message,
so
they
want
to.
First.
Actually
see
that
they
can
get
a
message
about
order
placement
and
they
don't
care.
A
What's
the
name
of
the
application
that
is
sending
this
message,
they
they
care
about
that
the
message
exists:
what's
the
payload
and
then
how
to
connect
to
the
broker
to
actually
be
able
to
read
the
message
and
that's
what
what
are
different
use
cases-
and
it's
just
few
because
like
like
you,
can
imagine
if
it's
machine,
readable
format,
then
the
sky
is
the
limit.
A
If
it
comes
to
the
use
cases
like
yeah
a
lot
of
talking
code
generation,
docs
examples
I
have
used
so
actually
shrek
up
is
a
real
application,
so
I
generated
it.
I
can
quickly
show
it
to
you,
so
I
just
have
it
cloned
on
my
local,
but
it's
on
github.
The
link
is
in
the
script
so
just
quickly.
Looking
on
the
code
like
eighty
percent,
ninety
percent
of
the
of
the
code
for
this
project
was
generated
so
basically
using
the
async
api
document
for
shrek
up.
A
I
was
able
to
not
only
generate
code
but,
of
course,
even
publish
the
the
documentation.
So
we
can
see
travel
info
and
the
example,
for
example,
is
rendered
the
one
that
I
manually
provided.
So
I
can
generate
docs.
I
can
generate
app
and
later
I
just
have
to
provide
some
custom
code.
So
in
case
of
let's
just
start,
the
server.
A
Yes,
I
just
shared
my
token,
but
no
worries
it
doesn't
work
anyway
and
the
app
that
I'm
using
is
broken.
But
more
important.
Is
that
let's
talk
to
the
app,
so
you
remember,
there
were
two
channels,
so
I
websocket
you
had
to
recall
from
part
two
onboarding
where
I
was
using
websocket
to
connect
the
to
the
to
all
to
the
kraken
api,
and
here
we're
just
connecting
to
websocket
on
localhost.
A
Travel
status
in
this
app,
I'm
not
supporting
query
parameters,
so
we
can't
do
destination
bcn,
that's
not
possible
here,
but
yeah.
Let's
connect.
A
I
can't
imagine
working
with
different
one,
so
yeah,
you
can
see
that
I
subscribed
to
a
channel
with
travel
status.
Information
and
now
you
can
ask
a
question
like
okay,
but
so
you
generated
code
using
using
api.
A
You
had
some
sample
data,
but
we
do
not
recall
that
you
were
able
to
specify
that
distance
is
actually
a
number
with
kilometers
like
you
did
not
provide
any
sample
data
for
for
num
for
names
of
the
of
the
cities.
So
where
is
it
actually
coming
from?
A
So
it's
actually
coming
from
the
the
additional
custom
code
that
I
had
to
had
to
add
because,
like
I
was
just
mocking
the
the
server,
I
did
not
intend
to
write
in
a
real
live
status,
app
for
for
the
donkey,
so
so,
basically,
what
code
generation
gave
me
gave
me
chat,
js,
travel
status,
js
and
all
the
code,
except
of
what
is
sorry,
let's
make
it
a
bit
smaller.
A
So
I
got
all
the
codes
generated,
except
what
what
is
inside
the
service?
That's
something
custom,
that's
something
you
can't
describe
that's
like,
so
in
the
end
developers
are
still
needed.
They
they
need
to
write
this
business
code,
but
yeah
it's
much
more
fun
than
just
writing
some
validation
code.
A
So
you
can
see
here
that
I'm
basically
having
a
loop
and
using
some
library
for
generation
of
data,
I'm
just
sending
some
data
in
the
in
response
to
the
to
the
channel.
That's
that's
it
really
and
that's
it.
I
really
had
to
do
like.
I
didn't
have
to
all
the
colors
like
that,
the
the
nice,
the
nice
console
logs,
that
that
this
is
in
yellow
clyde
connected.
I
didn't
have
to
write
this
code.
That
was
all
generated.
A
Okay,
let's,
let's
start
the
chat
again,
but
yeah
chat
will
not
work.
There's
something
wrong
with
with
ai
that
I'm
using
so
I'm
using
actually
real
chatbot
service,
but
something
is
broken
with
it.
So
I'm
able
to
connect
to
the
chat,
send
the
message
to
shrek,
but
but
now
he
always,
he
like
the
service
returns
empty
answer.
So
my
my
app
says
like:
if
there's
no
answer,
then
it
means
your
question
is
strange
and
you're
gonna
be
asked
like?
Is
it
you
donkey?
A
Yes,
it's
me
but
yeah
I
provided
intents
for
good
morning
and
others
and
it
just
stopped
working
but
yeah.
I
did
it
last
time
last
year,
but
you
get
the
feeling
like
of
the
chat
right.
I'm
sending
message
receive
message
is
received
and
in
the
logs
I
can
see
that
the
information
is
coming.
A
So
that's
it
if
it
comes
to
the
code
generation,
so
you
can
install
it
on
local
play
with
it.
As
I
just
played
doc's
tools,
that's
not
so
relevant.
That's
like
one
of
many
tools
but
yeah
react
component
is
the
one
that
is
actually
also
used
in
html
template.
A
A
A
So
today
you
created,
I
hope
you
created,
or
I
just
created
it-
a
real
asking
api
document
for
a
sample
application.
We
used
majority
of
features
of
asking
api
document
with
references
with
bindings.
So
but
you
definitely,
if
you
didn't
watch
part
three
I
am
might
be.
That
part.
Four
is
not
that
easy
to
to
understand
and
we
were
able
to
see
some
in
action
code
generation
message:
validation,
mocking
some
even
design,
first
approach.
So
do
you
have
any
questions
because
it's
part
for
the
last
part.
A
I
will
not
do
part
five
unless,
unless
you
give
me
feedback
that
something
was
not
mentioned,
that
requires
more
explanation
and
I
definitely
can
then
provide
something
for
you,
but
you
just
need
to
let
me
know,
but
so
far
any
questions
anybody
has
at
the
end,
because
we
still
have
30
minutes
until
the
next
live
stream.
So
I
can
still
stay
here
and
answer
some
questions.
If
you
haven't.
A
Okay,
I
don't
see
also
any
questions
in
the
in
the
live
chat,
so
thank
you
all
for
joining,
especially
all
the
four
parts
of
the
onboarding.
Not
many
people
provided
me
feedback.
So
please
in
dm,
I'm
really
open,
I'm
actually
most
interested
with
negative
feedback.
So
please
share
it
with
me.
A
Like
tell
me
where
I
got
lost,
I
lost
you
because
I
think
that
this
is
on
boarding
it's
for
now
on
my
private
profile,
but
I
used
it
already
once
on
one
conference
and
I
will
apply
to
few
next
ones
if
they
want
to
have
some
workshop
that
takes
half
a
day,
but
but
I'd
like
to
improve
it.
A
So
if
you
think,
if
you
have
some
feedback
like
well,
where
I
lost
you,
where
you
think
more
explanation
was
needed,
more
details
than
or
any
other
feedback,
please
really
don't
feel
bad
sharing
it
with
me.
I'm
I
can
I
can
handle
it.
I
can
handle
negative
feedback
so
because
I
know
it's
it's,
it
will
just
improve.
A
Okay,
everybody
go,
everybody
went
which
is
not
strange,
actually
one
and
a
half
hour.
Listening
to
me.
Oh
no
summit!
Yes,
yes,
awesome!
So
at
this
one
person.
Okay,
thank
you
so
much
folks,
there's
no
need
to
keep
it
longer,
pedro!
Thank
you
for
joining
life
as
well.