►
From YouTube: RustLang Meetup Malaysia - May 2022
Description
Hanif Bin Ariffin (hbina) share his experience with rust web framework axum.
Host audio isn't recorded in the stream due to technical issues.
A
Okay
yeah,
so
my
name
is
anif.
I
am
a
software
developer
at
globalized
here.
We
use
rust
for
the
back
end
and
react
for
the
front
end.
It's
a
pretty
new
company,
so
it's
pretty
challenging
since
I
have
to
work
with
basically
from
zero,
but
yeah
anyways.
Since
this
is
the
first
time
I've
been
using
rust
for
work,
so
I
thought
it
might
be
interesting
to
share
my
experience
using
it.
A
So
yeah,
like
I
said,
like
I
even
said,
I'm
using
russ
an
exam
at
work.
A
So
if
you
go,
if
you,
google,
russ
you're,
probably
going
to
come
up
with
the
game,
but
if
you,
if
you
add
in
rust
length,
you're
gonna
come
up
with
a
website
and
from
the
website
page,
it
says
that
rust.
While
you
why
you
should
consider
us
right-
and
it
provides
three
sorry
reason
why
the
first
is
performance
since
rust
is
compared
to
it's
a
compact
language.
So
it
can
offer
more
reliable
performance
compared
to
something
like
node.js
go
and
also
doesn't
have
any
gc,
and
all
that
so
yeah
you.
A
If
you
you,
can
tune
your
software
as
much
as
you
want
to
get
the
exact
performance
that
you
want.
It's
also
very
reliable.
Well,
the
first
thing
is:
rus
is
probably
one
of
the
most
well.
There
are
already
languages
like
russ
scala
husker,
but
those
languages
are
pretty
as
esoteric.
In
my
opinion,
they
don't,
I
don't
think
they
are
trying
to
accommodate
for
as
many
people
for
us
I
mean
you
know
I
don't
think
they're
trying
to
reach
a
wide
audience
like.
I
don't
think
haskell
is
trying
to
get.
A
Even
though
russ
have
this
high
level
concepts
like
thought
classes
generics
lifetimes,
but
it's
still
it's.
If
you're
writing
us
still
feels
familiar
if
you're,
if
you're
from
the
c
type
language
like
javascript
touchscreen,
go
so
you're
already
familiar
with
those
kind
of
languages
right,
so
you
yeah
it's,
but
it's
reliable
in
the
sense
that
the
type
system
will
guide
you.
As
you
program,
so
you
can
represent
with
a
powerful
touch
system.
A
You
can
represent
ideas
that
you
otherwise
cannot
represent
in,
like
things
like
javascript,
even
gold,
because
it
doesn't
have
enum,
it
doesn't
have
a
powerful
enum.
So
yeah,
that's
really.
I
think
it's
pretty
great.
It's
also
it's
very,
quite
productive,
because
it's
actually
very
reliable.
A
So
you
already
debug,
while
you're
writing
the
code
for
the
first
time,
you're
already
seeing
all
the
flaws
that
you
you
might
see
later
on
right,
especially
in
my
previous
experience,
is
using
node.js
and
we
use
typescript,
but
typescript
is
not
powerful
enough
to
in
my
screen,
convey
some
ideas
like
nullability
ideas
like
enums
right,
so
you
end
up
well,
even
though
you
write
fast,
you
also
break
things
fast
as
well
right.
So
if
you
forgot
to
check
for
now
values
you
get
a
comp
now
reference
error
or
something
in
production.
A
That's
going
to
be
pretty
bad
yeah,
so
in
that
regard
it's
really
productive,
but
even
my
thought
is
not
going
to
be
very
flowery,
for
I
mean
I'm
I'm
just
basically
I'm
going
to
be
real
right,
whereas
it's
not
the
full
fat
language
as
you'll
see
later
on,
but
yeah.
A
In
that
sense,
it
is
productive,
but
we'll
see
a
lot
on
why
russ
is
still
not
mature
enough,
in
my
opinion,
for
if
there
are
certain
things
that
need
to
happen
first
before
you
can
consider
us,
but
we'll
see
so
yeah
for
the.
As
for
the
framework
for
the
web
service
framework,
I'm
using
exam.
A
B
A
Pretty
good
because
of
the
things
mentioned
here,
the
first
thing
is
most
other
frameworks
are
maintained
by
a
single
developer.
As
far
as
I
know,
rocket
is
maintained,
basically
maintained
by
one
developer.
Even
though
there
are
contributors,
it
opens
up
and
everything,
but
most
of
the
contribution
is
coming
from
a
single
person
right.
So
if
that
person
is
suddenly
not
interested
anymore
or
you
know,
something
happened,
something
bad
happened
to
him.
A
A
But
exam
is
maintained
by
tokyo,
which
is
a
pretty
really
popular,
probably
the
most
popular
essing
library
in
rus.
So
you
it's
less
likely
to
be,
you
know,
left
up,
and
since
it
it's
based
on
tokyo,
it's
also
and
his
tokyo
is
very
popular.
A
You're
also
unlikely
to
come
across
async
issues,
because
rus
essing,
because
russ
does
not
provide
async,
does
only
provide
basic
async
functionalities.
There
are
multiple
async
frameworks
out
there
and
they
are
not
compatible
with
each
other,
but
tokyo
is
one
of
the
most
popular
one,
so
most
crates
will
cater
to
that.
A
But
I
personally
I
haven't
come
across
this
issue
yet
because
I
have
not
gone
that
low
level
yet
so
I've
not
seen
the
I've.
No,
I
don't
even
know.
What's
the
difference
between
all
the
other
async
ecosystems
interests,
so
yeah
in
my
place.
In
my
experience
that
hasn't
been
an
issue,
but
it
you
you
might
come
across
it.
If
you
go
low
level
enough,
there
are
some
boilerplate
that
you
have
to
write.
I
have
a
small
code
here
so
yeah.
A
So
this
is
the
the
main
function
here.
It's
it's
similar
to
most
frame
most
web
frameworks,
so
you
have
a
path
that
you
assign
to
the
server
and
then
you
execute
the
server
after
on.
So
in
that
sense,
it's
very
similar,
but
the
different
thing
is
in
other
language.
I
think
you
just
need
to
return
something,
and
then
the
framework
is
going
to
figure
out
for
yourself
here.
It's
also
similar,
but
because
it's
com
it
has
to
be
compiled.
A
So
you
can't
just
I
don't
know,
return
whatever
you
need
to
return,
something
that
makes
sense
in
this
case.
The
handler
here
requires
that
you
return
something
that
implements
into
response.
So
as
long
as
that
thing,
as
long
as
whatever
you
return
implement
into
response,
you
can
return
that.
A
Actually,
why?
Where
did
my
changes?
Go?
What?
Oh
sorry?
It
is
not.
Actually
here
read
me:
okay,
so
yeah.
The
first
thing
yes,
so
static
string
implements
into
response,
so
you
can
return
that
you
can
also
return
any.
A
You
can
also
written
a
status
quo
and
then
their
tailor
in
this
case
we,
the
user
here,
is
just
a
straw,
but
there
are
many
different
kinds
of
a
tailor
right.
I'm
sorry,
I
don't
know
ddto
that
it
can
be,
I
don't
know,
form
a
binary
form
or
something,
but
in
this
case
we
still
exam
to
return
a
json
and
it's
going
to
handle
all
the
header,
headers
http
headers,
and
all
that
all
the
sizes
of
the
file
and
everything
is
going
to
be
handled
by
exam.
A
You
can
also
read
yeah.
You
can
also
get
get
queries
from
from
the
request
like
this,
and
it's
going
to.
A
Since
this
implement
use
it
uses
survey,
so
it's
going
to
automatically
perform
all
the
validation
for
you.
So
that's
pretty
nice,
so
you
don't
have
to
write
in
node.js.
You
have
to
write
a
validator.
I
don't
forget
what
it's
called.
I
think
validator
is
something,
and
you
requires
a
lot
of
manual
work
and
there
it's
a
pretty
error
prone
in
my
opinion,
but
with
this
survey
you
can
be
sure
that
the
thing
that
you
are
getting
is
actually
a
string.
So
that's
pretty
nice.
A
A
I
know
sorry
it
I
mean
it
does
validation
in
the
sense
that
the
things
that
you
are
getting
is
a
string
right.
So
if
in
if
I
perform
a
chrome
in
this
website,
right
I'm
going
to
in
the
body.
A
Can
send
whatever
I
want
right
and
in
node.js?
If,
if
you
send
this
value
it
it
still
works,
I
mean
it's
still
compiled,
it
doesn't
doesn't
even
compile
right.
So
you
are
going
to
get
a
runtime
error,
but
right
right
now
you
should
you
should
you
should
send
something
like
this,
but
russ
is
since
compile
and
received
a
like.
It
has
serialization
and
this
relation
actually
will
actually
fail.
If
you
return
something
and
it
doesn't
make
sense,
so
you
you'll
automatically
get
validation
but
yeah.
A
So
the
the
serializer
and
the
serializer
of
this
type
is
going
to
perform
the
validation
for
you.
So
yeah,
that's
pretty
nice.
A
A
Yeah
yeah,
you
can
also
use
custom
resolution,
but
yeah
yeah
validation,
at
least
in
the
in
the
first
level.
You
you
or
you
make
you're
assured
that
the
things
that
you're
getting
is
that
that
you're
getting,
which
is
already
nice
enough,
in
my
opinion,
that
yeah,
if
you
want
that
kind
of
validation
you
can
actually,
you
can
actually
just
implement
the
sorry
implement
from
from
response.
I
think
sorry
from
response
for
create
user,
something
like
this
and
then
yeah
you
you're
you're,
going
to
implement
the
validator
in
here
and
yeah.
A
It
still
requires
some
boilerplate
work,
yeah,
but
yeah,
so
it
does
yeah,
and
this
is
basically
what
exam
provides
and
then
you
can
write
your
backend
using
whatever
sqlx
or
whatever
yeah
yeah.
Another
thing
is
since,
as
you
can
see
here,
there
is
not
that
many
activity
in
exam,
so
there's
not
that
many
that
it's
not
there's
no
large
community
out
there,
that's
using
exam.
I
don't
know
if
I
don't
know
if
it's
at
least
I
cannot
find
any
of
them,
so
maybe
they're
hiding
somewhere
or
something.
A
But
as
far
as
I
know,
as
far
in
my
experience,
getting
help
on
exams
specifically
is
pretty
hard.
You
basically
have
to
go
to
their
maintainers
and
get
put
them
to
see
if
they
can
help
you
issue
with
your
issues.
So
that's
you
know
pretty
bad
yeah
and
the
last
thing
here
I
think
if,
since
you're
writing
a
back
camera
you're
going
to
communicate
with
your
front
end,
that's
so
one
way.
One
communication
that
I
find
very
powerful
and
easy
is
open
api.
So
basically
swagger.
A
I
think
it's
another
name
for
it.
So
exam
does
not
have,
does
not
have
the
ability
to
generate
swagger
files
automatically.
Yet
there
are
work
there
are
there.
There
is
a
library
for
it,
but
it
only
works
for
rocket
and
the
word
for
exam
is
not
implemented
yet
so
yeah.
So
you,
the
yeah,
there's
kind
of
there's
going
to
be
some
friction
between
you
and
your
left,
because
you're
going
to
unless
you're
full
stack
right.
B
A
Let's
exam
for
the
obviously,
if
you're
writing
a
web
server
you're
going
to
have
some
some
database
or
something
to
store
your
data.
For
that
I
use
sqlx.
A
In
the
beginning,
we
had
to
choose
between
this
or
diesel
diesel.
Unfortunately,
diesel
does
not
support
axing
yet,
and
we
are,
we
are
looking
yeah.
We
wanted
to
something
something
icing,
so
we
resort
to
sqlx.
A
Sqlites
is
also
pretty
nice
yeah.
You
can
perform
compile
time
checks
on
your
sql
queries.
So
if
you
can
see
the
query
here
on
the
bottom
right
at,
I
think
at
build
time.
A
A
I
don't
know
some
compile
time
checks
and
then,
if
there
is
a
mismatch,
it's
going
to
throw
compare
time
error
so
so
yeah.
You
cannot
even
even
though
you're
writing
a
raw
string,
raw
sql
string
you're
not
going
to
make
a
mistake
because
it's
roasting
right.
So
it's
not
it's
already,
so
it's
an
alternative
to
orm,
which
this
is
an
rm
right,
so
yeah.
So
it
already
feels,
like
you
know,
m,
but
it
just
it.
A
I
think
it's
better
because
you're
not
using
the
best
book
dsl
that
your
your
aim
is
using
you're
using
sql.
Everyone
is
familiar
with,
but
yeah.
Since
it's
compile
time
you
are
going
to
introduce.
A
I
mean
comp,
overhead
compiler
overhead,
so
your
development
cycle
might
be
affected,
but
in
my
experience
it's
not
as
bad
if
you're,
if
you're,
using
a
simple
queries
and
also
that
after
the
compile
time
itself,
doesn't
work
for
if
you're
used
very
complex
like
if
you
join
multiple
table,
I
don't.
I
think
the
the
chat
is
going
to
get
confused
yeah
my
at
least
in
my
place.
What
we
do
is
we
write
for
anything
complex.
A
We
write
those
queries
as
a
view,
and
then
we
write
based
some
simple
sql
queries
in
the
in
our
code.
Yeah
that
helps
removing
a
lot
of
the
compilation
issues.
A
Yeah
man
yeah,
I
think,
but
I
think
this
it
still
needs
to
the
type
that
you
are
trying
to
get
from
from
sql
needs
to
implement
conversion
from
the
sql
types
into
your
type
right.
A
I
think
for
some
things,
it
doesn't
support
that.
So
this
is
my
experience.
For
example,
we
you
lead
for
sl
primary
key
and
even
though
julie
is
com,
convertible
from
uuid,
which
sql
support,
sorry
hp,
sql
support,
but
sqlx
gets
confused
because
it
doesn't
know
that
your
lead
is
equivalent
to
you,
your
id
so
yeah,
at
least
in
the
area.
In
that
case,
compile
temperature
is
going
to
get
confused
as
well.
B
A
At
least,
maybe
because
I'm
used
to
writing
note.js,
which
does
not
really
have
any
compile
time.
So
that's
the
cycle.
There
is
much
quicker,
but
the
the
words
that
I've
got
is,
I
don't
know,
maybe
one
minute
to
a
minute
which
is
already
no
no
to
build,
but
to
cargo.
I
think
it
takes
30
seconds.
I
use
cargo
watch
check
and
so
it's
compiling
all
the
time.
So
I
mean
it's
30
seconds,
something
like
that.
A
Yeah,
like
I
said
it's
pretty
bad,
especially
if
you
are
trying
to
iterate
quickly
so
yeah
you're
gonna
have
to
be
careful.
B
A
Check
errors
that
sql
return
is
pretty
helpful,
in
my
opinion,
at
least
at
least
when
it
get
confused.
It
automatically
defaults
to
pg
query
type.
So
you
get.
You
know
that
oh
it's
confused,
but
actually
it
doesn't
tell
why
it's
confused.
That's
the
bad
thing.
I
guess
it
just
says.
Oh,
I
don't
know
what
to
do.
I
returning
something
default
and
you
have
to
figure
out
what's
wrong
all
right.
So
that's
not
nice,
I
guess
yeah,
but
the
compilation
is
pretty
bad
and
my
code
base
is
pretty
small.
A
Now
I've
only
been
doing
this
for
two
months
three
months,
something
like
that
and
it's
already
this
display.
I
cannot
imagine
if
you
are.
If
the
code
base
grows
every
you
know
more
and
more
micro
services
added
on
top
of
it
might
be,
lowers
yeah.
Another
thing:
you're
going
to
have
you're
going
to
need
a
pretty
good,
beefy
computer,
because
at
least
my
works.
My
code
base
requires
a
16
gig,
especially
when
it's
trying
to
compile,
and
especially
because
I
have
a
16
core
cpu.
A
You
might
you
can
reduce
the
memory
usage
if
you
reduce
the
number
of
threat
that
it
can
spawn
but
yeah,
and
then
you
get
slower
compare
time
right
so
yeah
another
great,
especially
if
you're
writing
a
web
service
you're
going
to
need
you're
going
to
use
the
libraries
if
we're
going
to
do
extracting
data
from
pdf
excel
or
connecting
with
sap.
A
You
don't
want
to
write
all
of
this
by
yourself
right.
That's
going
to
be
an
insane
endeavor,
so
you're
going
to
rely
on
libraries
that
other
people
write,
but
unfortunately,
since
russ
is
not
as
mature
relatively
compared
to
other
languages
like
energize,
or
you
see
javascript
python
you're
going
to
have
you're
going
to
find
you're,
never
going
to
find
a
perfect
library.
A
So
you
have
to
decide
on
one
and
then,
if
the
library
does
not
provide
you
with
the
things
that
you
need
you're
going
to
have
to
implement
them
yourself,
and
I
already
have
to
do
that
a
couple
of
times
with
excel,
especially
and
then
yeah.
Sorry,
no,
no,
no
there's
already
a
library,
but
it
it's
not
complete
right.
So
because
it's
pretty
new
and
excel
is
a
pretty
big
file
format.
A
So
not
everything
is
implemented
and
and
you're
going
to
have
to
implement
some
of
them
yourself,
so
you're
basically
going
to
have
to
contribute
to
the
library
and
then,
if
the
author
is
not
responsive,
then
you're
going
to
have
to
fork
them
or
copy
copy.
The
file
then
paste
into
your
and
then
track
them
in
your
project.
B
A
A
A
A
Oh
no,
no,
I
haven't
done
that
yet
I
I
suppose
that's
possible
yeah.
We
haven't
at
least
at
least
so
far.
The
the
features
that
I
need
is
implementable
right.
It's
not
some
weird
thing
that,
except
that
I
don't
know
about
so
so
far.
I
at
least
so
far.
I
can
fix
them,
but
maybe
in
the
future,
when
you
are
having,
I
don't
know,
you
need
some
street
requirement
and
the
rust
library
is
simply
not
there
yet
yeah.
A
You
probably
have
to
resort
to
those
kind
of
solutions,
and
I
mean,
since
you
are
working
in
a
microservice
you
should
you
need
probably
have
to
create
another
microservice
that
is
based
on
other
language
as
a
sort
of
a
proxy
between
between
the
the
user
and
your
backend,
the
actual
backend
right.
So
something
like
that
is
possible
as
well,
but
yeah
you're
not
going
to
since
you're,
not
going
since.
A
There
is
not
that
many
that
large
community
out
there,
so
you
are
going
to
be
at
the
frontier
of
a
rust
web
development,
so
sometimes
you're
going
to
stumble
across
something
that
no
well.
Maybe
someone
have
come
across
it,
but
maybe
they
haven't
published
the
fixes
or
something
like
that,
so
you
have
to
fix
them
yourself
yeah.
So
you
have
to
be
aware
of
that
yeah.
So
I
think
that's
pretty
much
all
I
have
to
say
but
yeah
as
a
conclusion.
A
To
be
honest,
if
you
cannot
find,
if
you
don't
already
have
a
team
of
developer,
that
is
experience
in
russ,
so
you
already
have
that
talent
in
your
repository,
I
don't
think
you
should
use
rust.
We
have
a
new
programmer
that
never
used
rust
before
they
they
were
experienced
in.
A
Even
though
the
transition
to
rush
is
not
that
bad.
Because
it's
you
know,
I
mean
you
know,
any
language
is
not
that
different,
but
still
the
cons
the
you
have
to
you
have
to
they
have
to
go
through.
A
I
think
pretty
new
concepts
like
traits
and
lifetimes
and
the
different
type
of
string,
for
example
like
what's
what's
the
difference
between
us,
a
reference
to
a
string
and
a
reference
to
us
as
a
static
string,
a
reference
to
a
string,
this
capital
s
right
and
all
that,
so
it
might
get
confusing
for
them.
A
So
you're
going
to
have
to
deal
with
that
or
you
you
have
to
try
somehow
to
find
a
rust
developer
that
that
has
not
been
pushed
by
other
people.
Yet
because
my
experience,
if
experience
very
experienced
developers,
are
probably
already
working
for
some,
you
know
because
they
are
pretty
rare
they're
looking
for
some
high
paying
job
right
somewhere.
So
yeah.
B
A
Going
to
have
trouble
finding
them
yeah-
I
haven't
mentioned
this
before
since
there's
not
that
many
people
using
rust
in
the
first
place,
so
it
might
be
hard
to
get
help
and
yeah.
The
ecosystem
is
pretty
young,
so
you're
going
to
have
to
put
some
work
yourself.
A
Yeah
and
the
0.4
is
basically
the
same
thing
yeah.
Another
thing
I
think
the
every
time
this
is
just
mine
sort
of.
A
Whatever
every
time
people
mention
rus
peop,
even
the
us
developer
themselves,
always
mention.
Oh
lifetime
is
a
hot
or
if
you
use
rust
or
you're,
going
to
have
issue
with
last
time.
I
don't
think
right.
Time
is
actually
an
issue
because,
for
the
most
part,
cloning
is
perfectly
fine
because,
like
if
you
are,
if
you're
conf
ever
confused
with
your
lifetime,
you
just
clone
the
thing
right
and
then
go
your
way
because
most
of
the
time
like
performance,
unless
you
are,
you
have
a
straight
performance
requirement.
A
Performance
is
not
a
problem
right,
at
least
in
my
experience
yeah.
That's
just
something
I
wanted
to
say.
I
think
that's
it
yeah
yeah!
Sorry,
this
thought
is
a
bit
rambly
because
I
have,
I
wasn't
really
prepared.
It
was
a
pretty
busy
couple
weeks,
so
I
prepared
this
like
like
today.
So
if
you
have
any
questions,
yeah
go
ahead
because
I'm
also
not
I'm
only.
I've
only
been
working
writing
web
services
for
one
and
a
half
years.
So
I'm
not
that
experienced
in
writing
web
services
in
the
first
place.
A
B
A
A
B
A
Development
issues
and
yeah
so
far
in
at
least
in
my
experience,
personal
experience,
rust
itself
is
not
has
not
been
a
problem,
but
yeah
designing
that
because
yeah,
because
my
company
is
really
new,
designing
the
database.
Designing
the
I
don't.
A
A
B
A
A
A
Yeah
I
have
not
used,
I
I
actually
we
had
some
issues
with
because
tokyo.
Sorry,
we
yeah
whenever
there's
a
panic.
What's
still
painting.
I
think
that
was
it's
not
appending,
it's
not
an
error,
but
it
propagates
up
to
the
handler,
and
then
you
get
a
5500
response
right,
but
the
debug,
the
debugging
experience
is
not
it's
pretty
bad.
Actually,
because
because
the
error
bubble
up
you,
you
want
you
want.
A
You
want
the
arrow
to
bubble
up
in
up
to
the
handler
right
instead
of
panicking,
because
if
it
panics,
then
the
entire
server
is
going
to
get
polluted
the
this
the
the
threat
will
go.
Something
is
going
to
get
polluted,
so
you're
going
to
have
restart
the
server.
So
you
want
every
every
error
to
bubble
up
up
to
the
handler,
but
then
you're
going
to
have
b.
Then
you
don't
have
a
stack
trace
right.
A
You
don't
have
a
text
list,
so
you
have
to
figure
out
the
error
from
the
response
that
you
get.
One
solution
is
to
use
to
monitor
your
server
using
a
tokyo
console,
but
no
actually
I
tried
to
use
it,
but
we
have.
We
actually
don't
run
our
web
server
directly.
We
run
it.
We
on
inside
adapter
that
another
frame
would
it's
it's
like
a
sidecar
to
your
to
your
application.
So
this
is
your
app
it's
my
server,
and
this
is
my.
A
This
is
the
double
application
that
is
talking
to
myra
server
and
then
and
then
everything
else
is
talking
to
double.
A
Yeah,
it
is
to
make
the
the
whole
the
whole
point
of
dapper
is
to
make
deployment
easier
and
there's
also
some
things
that
you
provide
like
telemetry
and
all
that
the
observability
and
then
it
also
make
connecting
to
other
micro
services
easier.
A
You
know
stuff,
like
pubs
up
secret
management
and
all
that
yeah,
but
then
the
problem
now
the
problem
is
that
you're
you're
not
running
the
app
directly
and
yeah
make
me
a
as
maybe
there's
a
way
to
figure
that
one
out
but
yeah,
a
tokyo
console
has
not
been
working
for
me
yeah.
So
that's
pretty
unfortunate,
yes
and
yeah,
and
we
had
to
resort
to
basically
logging
a
bunch
of
things
so
yeah
it's
back
to
print
debugging.
I
guess.
A
And
then
we
have
a
no
yeah.
Is
there.
A
Oh
so
you're
going
to
get
the
track
like
something
like
a
stack
dress.
B
A
So
you
know
exactly
where
they
happen
on
something
start
to
login.
A
C
B
A
Yeah,
oh
yeah
talk
about
testing
just
we
at
least
in
my
place.
Testing
web
services
is
pretty
hard
in
russ.
I
think
you
basically
have
to
write
raw
ku
rok
http
request
using
something
like
request
and
then
make
the
make
the
call
and
then
get
your
get.
Your
result
perform
some
assertion.
There.
A
A
Yeah,
no,
no,
actually
that's
another
one
after
one
way
of
doing
it,
but
then
at
least
I
think
it's
er.
It's
not
that's
very
quite
pretty
hard
to
to
write
my
in
our
place.
What
what
I
did
was.
Instead,
I
write
so
I
I
I
write
the
the
server
in
russ
right
in
the
backend
address
and
then
for
every
endpoint
that
I
create
in
the
backend.
A
I
create
the
equivalent
equivalent
function,
query
in
node.js
library
for
the
front
end
right,
so
the
front-end
does
not
have
to
manu
manually
write
the
the
the
query
by
reading
the
documentation
and
all
that
the
the
backend.
In
that
case
me,
I'm
going
to
write
the
front-end
library
that
maps
the
function
in
front-end
javascript
to
the
the
back-end,
and
then
I
write
the
test
as
it
just
gestures.
A
Yeah
the
packet
does
not
have
does
not
have
a
task
test,
no
yeah,
it's
yeah.
I
think
it's
a
lot
easier.
This
way,
and
I
do
I
do
a
full.
What
is
it
called?
End-To-End
testing
like
a
create,
create
an
account
then
try
to
log
in
try
to
change
the
account
details,
try
to
or
do
all
that
so
yeah
using
the
front-end
library
so
this
rim,
first
of
all,
it
removes
the
work
of
the
front
end
death
from
having
to
read
the
documentation.
A
On
the
back
end,
I
figure
out
what
is
what
the
end
point
needs
right.
What
the
endpoint
returns
the
fro
the
backhand
drive
is
going
to
you're
going
to
maintain
those
second
of
all
yeah.
The
at
the
end
of
the
day,
juan
mata
is
that
the
front
end
works
right,
at
least
at
least
I
mean
at
least
for
this.
For
a
company
I
mean
as
long
as
the
the
website
is
working.
A
You
know
it
is
fine
for
them
right,
so
yeah
so
yeah.
I
think
it's,
I
think,
yeah.
I
think
it's
kills
two
with
one
stone,
something
like
that.
Yeah.
A
A
Yeah
yeah,
I
really
are
also
testing
the
back
the
front
end
as
well
yeah
because
yeah,
because
in
the
beginning
they
they
write
the
endpoint
by
themselves
in.
A
Right
and
there's
going
to
be
some
mismatch,
like
though
they
thought
that
this
thing
is
optional
or
it's
actually
not.
I
update
the
the
the
written
the
response
and
they
forgot
to
update
the
response
on
the
front
end
so
yeah,
so
I
decided
I'm
going
to
do
that
for
them
since
yeah.
A
At
this
point,
there's
no
recommend
there's
no
documentation.
The
only
documentation
in
quote-unquote
recommendations
that
we
have
is
a
postman,
but
postman
cannot
convey
optional
right.
I
don't
think
so.
You
have
to
you
have
to
add
comment
like
oh
this.
By
the
way
it
is
optional.
A
Even
then,
it
postman
also
cannot
convey
the
written
the
the
response
right,
so
even
even
if
postman
is
able
to
convey
that
they
still
have
to
manually
transcribe
the
postman
dot
into
the
typescript
code,
which
is
I
mean,
that's
double
the
word.
I
have
to
write
the
commentation
and
then
they
have
to
convert
the
recommendation
back
into
touchscreen.
Why
not
just
write
the
touchscreen
directly?
A
A
I
think
if
I'm
going
to
do
it
alone,
I
don't
think
I'm
going
to
do
it
because
because
it's
a
lot
of
work
and
especially
right
now,
so
I'm
going
to
see
especially
right
now,
my
in
my
company
there's
only
two
engineers
me
and
the
other
guy
and
then
there's
an
end
generally.
A
A
Yeah
they
still
know
how
to
go.
I'm
sure
he
knows
to
go
but
he's
busy
with
cto
stuff
right.
So
there's
only
two
for
a
programmer
in
the
back
end
and
the
other
programmer
yeah.
Both
of
us
are
carriers,
actually
the
other
guy
is
better
than
mina,
but
but
he's
on
leaf
because
he
got
a
hand
injury
so
right
now,
I'm
the
only
vacant
developer.
A
So
yeah
yeah,
it's
it's
it's
a
lot
of
stress
like
especially
when
something
like
I
said
before
us,
then
I'm
I'm.
The
requirement
says
I
have
to
pass
excel
and
then
do
something
something
and
then
okay,
let
me
look
up
excel
library,
oh
okay,
this
there's
an
extra
library,
but
it's
not
complete,
but
then
then
I
have
to
do
it
by
myself,
so
the
pretty
stressful.
In
that
sense
right
I
mean
yeah
yeah.
That
is
not
mature
enough.
A
I
think
I
think
if
there's
like
enough
competent
developer,
let's
say:
there's
a
five
developer
right.
I
think
I
think
it's
easier
that
will
I
because
I
can
communicate
with
them.
I
can
one
of
them
can
work
on
the
you
know,
library,
stuff,
but
right
now
I
have
to
do
all
of
them
by
myself
right
yeah.
It
doesn't
it's
a
lot
of
work
but
yeah,
but,
like
I
said,
if
you
have
a
team
of
rest
developer,
you
should
consider
us
because
I
think
I
think
rather
the
bright
future
than
I
think.
A
A
I
probably
go
for
a
touchscreen
or
something
like
that.
Yeah
I
mean
it's
not
the
best,
but
I
mean
finding
developer
is
hard
enough.
Finding
us
developers-
I
don't
know
we,
we
actually
are
an
international
company,
we're
not
limited
to
asian,
we
are
a
remote
company,
but
so
so
we
are
international
company
and-
and
we
cannot
find
a
developer
right.
So
if
you
are
limited
to
local
manager
company,
I
don't
know
how
you
can
find
them.
A
Like
I
said
what
I
rarely
go
back
to
the
code
that
I
wrote
before
because
for
the
most
part,
unless
it's
a
logic,
error
get
which
which
happens,
the
code
simply
works,
which
is
not
the
case
in
my
experience
in
typescript
because
yeah
because
things
can
change
the
library
got
updated
and
then
someone
I
updated
an
object
or
someone
forgot
to
check
a
null
value.
A
A
B
A
A
I
think
maybe
something
like
yeah
scala
is
also
have
a
good
type
system,
but
nobody
uses
it.
I
think
it's
even
harder
to
find
a
scholar
program,
or
maybe
not
I
don't
know
yeah.
B
B
A
B
A
Yeah
I,
to
be
honest,
I
don't
have
much
experience
in
other
I
mean
I
know
on
cursory
level.
Basically
I
read
I
I
read
some
blog
or
something
like
that.
So
yeah,
I
don't
have
like
experience
writing
rocket,
but,
as
you
can
see,
there's
not
that
many
activity
I
mean
the
future.
Is
there.
A
I
think
yeah,
I
guess
yeah,
I
think,
there's
a
lot
of
boilerplate.
I
think
that's
one
issue
because
I
think
okay
for
jason,
it's
simple
right,
jason.
You
can
just
do
this,
but
for
form
from
data.
A
A
But
it
it
doesn't,
I
think
it
does
not
disrespect
directly
into
your
type
right,
or
at
least
you
have
to
write
your
own
conversion
from
response
effort.
Sorry
from
from
a
response,
no
request
into
your
pal
into
your
from
into
your
struct
from
that
form
data,
and
I
have
a
code
for
it.
Can
I
show
it,
but
it's
really
it's
pretty
gnarly.
It's
we
have
to
work
with
the
oh.
Actually
I
do
have
a
problem.
A
I
had
hired
a
problem
with
a
async
trade
because
because
this
thing
is
a
really
listening,
async
function
and
returns.
A
When
I
was
implementing
the
conversion
from
the
request
into
the
form
data,
I
encountered
some
issue
with
the
async
trade.
I
forgot
what
it
was,
but
I
I
I
couldn't
fix
it.
So
what
did
I
do?
Yeah.
B
A
A
B
A
A
A
A
B
A
Up
like
we
don't
have
any,
because
we
I
just
started,
we
just
started
the
the
back
end.
We
haven't
it's
not
material,
it's
not
mature.
Yet
so
many
sort
of.
A
Helping
tools
is
not
there
like,
we
don't
really
have
logging,
yet
we
don't
really
have
I
mean
no.
A
No,
we
haven't
integrated
with
like
amazon
amazon
bucket
something.
What
is
it
called.
A
A
A
B
B
A
A
A
B
A
B
C
Really
but
century
yes
century
is
hiring
rasta.