[Serbian]
I can’t work, this database is driving me nuts
00:03 --> 00:08
My brain is still asleep, and my fingers won’t listen
00:08 --> 00:10
I can’t get it to connect
00:10 --> 00:13
Could any one of you bring me the coffee?
00:14 --> 00:16
What is he saying?
00:16 --> 00:18
I think he says that he needs
00:18 --> 00:20
to update the database tables
00:26 --> 00:30
Ask him if we need to
update the security protocol as well
00:35 --> 00:38
[Serbian]
Hello…?
00:40 --> 00:44
[Serbian]
Hello, I need the coffee
00:52 --> 00:53
He says yes
00:53 --> 00:56
And we also need to update the API tokens
00:59 --> 01:01
But you know this sucks
01:01 --> 01:02
It’s like playing the whispering game
01:02 --> 01:04
If it wasn’t for his contact network…
01:04 --> 01:05
Yeah!
01:05 --> 01:08
This is exactly like an API!
01:09 --> 01:10
Yeah?
01:10 --> 01:11
You know
01:11 --> 01:13
This! What we’re doing!
01:13 --> 01:13
What we’re doing
01:13 --> 01:16
is exactly how an API works!
01:17 --> 01:19
When two systems
want to talk to each other
01:19 --> 01:21
without knowing the same language
01:21 --> 01:23
[speaks in a foreign language]
01:23 --> 01:25
[speaks in an even more foreign language]
01:25 --> 01:26
They can bring in
01:26 --> 01:27
a middleman, the API
01:27 --> 01:29
to enable the communication
01:29 --> 01:31
Hello — Hello.
01:32 --> 01:34
[Serbian]
Hello — Hello
01:34 --> 01:37
An API is often used as a middleman
01:37 --> 01:39
to communicate with your SaaS platform
01:39 --> 01:40
Traditional systems
01:40 --> 01:42
would directly access data
01:42 --> 01:44
like Daniel here
01:44 --> 01:47
talking to Marko without a translator
01:48 --> 01:49
[Serbian]
Hello — Hello
01:49 --> 01:51
But with an API
01:51 --> 01:54
it’s like Daniel
sending his question to me first
01:55 --> 01:56
Hello — Hello
01:56 --> 01:58
And let me do the talking!
01:59 --> 02:00
[Serbian]
Oh brother, could any of you two
02:00 --> 02:02
just please bring me the coffee already
02:02 --> 02:03
I don’t understand what you
02:03 --> 02:05
are talking about all this time
02:06 --> 02:07
Can I get the coffee?
02:07 --> 02:08
Right!
02:08 --> 02:10
That means I don’t need
to know how to speak Serbian
02:10 --> 02:13
I just need to know how to speak to Kang
02:13 --> 02:16
Exactly… but in “real life”
02:16 --> 02:18
APIs come with challenges
02:18 --> 02:19
such as security
02:19 --> 02:21
and permissions
02:21 --> 02:23
(and a whole lot of errors…)
02:23 --> 02:25
And that is why
we use standardized rules
02:25 --> 02:27
like REST APIs
02:27 --> 02:29
to make communication
02:29 --> 02:30
safer and easier
02:32 --> 02:35
Inte-REST-ing API facts, for sure
02:36 --> 02:38
I REST my case
02:41 --> 02:42
The more you know
02:45 --> 02:46
[Serbian]
There is no point!
02:46 --> 02:49
I’ll go to Espresso House myself for coffee
02:56 --> 02:58
Zdravo (Hello)
03:10 --> 03:11
(start)
03:11 --> 03:12
Zdravo!
03:12 --> 03:14
And welcome to The Secret Tech Club
03:14 --> 03:17
— a video series where
we make tech fun and approachable
03:18 --> 03:22
Today my special guests are Marko,
full-stack developer
03:22 --> 03:25
and Daniel, our SEO master
03:26 --> 03:26
Thanks
03:26 --> 03:27
Is it SEO “expert”?
03:27 --> 03:29
Yeah, I can say that
03:30 --> 03:33
And today we got to talk about APIs
03:34 --> 03:36
And to make this session as
pleasant as possible
03:36 --> 03:39
we have finally provided Marko
with his cup of coffee
03:40 --> 03:42
I’m awake
03:42 --> 03:43
Marko
03:43 --> 03:46
Was it hard to learn Serbian
03:46 --> 03:48
to play the part in our skit?
03:49 --> 03:50
Yeah
03:50 --> 03:54
I spent like 40 years to learn it, so
03:54 --> 03:57
It was very authentic and believable
03:57 --> 03:58
But it took time
03:58 --> 03:59
Yeah
03:59 --> 04:03
And you really enjoyed playing in
our skit, didn’t you?
04:03 --> 04:04
Yeah, it was a lot of fun
04:04 --> 04:09
A lot of laughing and really
cool ideas that made me laugh
04:09 --> 04:11
So, really cool experience
04:11 --> 04:16
And Daniel, his acting prowess is already
well established at Zooma
04:16 --> 04:20
Maybe not to the external world,
but internally
04:20 --> 04:24
We all know you, and
04:24 --> 04:28
Yeah, but this was the
first time you played in a scripted skit
04:28 --> 04:30
Yeah, it was
04:30 --> 04:32
So, yeah, it was fun
04:32 --> 04:34
It was amazing
04:34 --> 04:38
I was pulled into Daniel’s
zone, so I really believed I was there
04:38 --> 04:40
I think you too, right?
04:40 --> 04:42
Yeah, it was authentic
04:42 --> 04:43
Okay
04:43 --> 04:46
But let’s take the chance
to remind our viewers that
04:46 --> 04:50
our skits are all in good fun
04:50 --> 04:53
And in reality,
we are very professional
04:54 --> 04:56
Solid communicators
04:56 --> 04:59
And we speak English
04:59 --> 05:03
And most importantly,
we love speaking about tech
05:03 --> 05:06
And today we’re
gonna speak about APIs
05:07 --> 05:09
Okay, so does anyone here
05:09 --> 05:13
know what A.P.I. stands for?
05:14 --> 05:15
[Nervous laugh]
05:15 --> 05:18
No? You’re the developer,
you should know!
05:18 --> 05:20
Application Programming Interface, right?
05:20 --> 05:23
Yeah, Application Programming Interface
05:23 --> 05:27
What a full-stack guy we have
05:28 --> 05:29
“What a fool”
05:31 --> 05:32
No, we need to
05:32 --> 05:33
Should we stop?
05:33 --> 05:34
No, it was great
05:34 --> 05:36
But ask me again
05:36 --> 05:37
Cuz I was stupid
05:37 --> 05:38
Okay
05:38 --> 05:40
What is API?
— Application Programming Interface
05:40 --> 05:43
Wow, that was really fast
05:45 --> 05:46
Okay
05:46 --> 05:49
But I did worry about this episode
05:49 --> 05:55
Because it is a
pretty technical concept, APIs
05:55 --> 05:57
But when I did research
05:57 --> 05:59
I discovered that it’s actually something
05:59 --> 06:02
that we get in contact with everyday
06:02 --> 06:04
without thinking about it
06:04 --> 06:09
And I have a little list here
about “Daily API examples”
06:09 --> 06:14
But can anyone guess
what kind of interactions I will say?
06:16 --> 06:17
Yeah…
06:17 --> 06:20
Probably…
06:20 --> 06:23
(Full-stack developer)
06:26 --> 06:29
I don’t know what we
need to talk about, sorry
06:29 --> 06:31
You can just guess!
06:31 --> 06:32
Okay, the examples
06:32 --> 06:35
What? Guess, like “Swish”, or guess…
06:35 --> 06:35
Yeah
06:35 --> 06:37
Ah okay, sorry
06:37 --> 06:38
So yeah
06:38 --> 06:39
Swish is a great example
06:39 --> 06:42
Our app needs to communicate
with the banks
06:44 --> 06:46
Maybe when you’re using
a weather app or something?
06:46 --> 06:47
It’s probably…
06:47 --> 06:52
I don’t think the weather app makers
have their own satellites
06:52 --> 06:55
No, they are fetching the data
from somewhere
06:55 --> 06:59
Also, when you book flight tickets,
you have these, what do you call these?
06:59 --> 07:00
Aggregators
07:00 --> 07:05
And they pull tickets from different,
you know, flight
07:06 --> 07:09
agencies? Or flight companies?
07:09 --> 07:12
Yeah, there is a name for these kind of websites
07:12 --> 07:15
Yes, a professional name that
we native Swedish people don’t know
07:17 --> 07:23
Last is the smart home devices that need
to interact with different services
07:23 --> 07:24
So, yeah
07:24 --> 07:26
APIs are something that we use every day
07:26 --> 07:31
but today we’re gonna explain a
little bit how they work
07:32 --> 07:34
And in our skit
07:34 --> 07:39
we mentioned REST APIs because it’s
a very commonly used protocol
07:40 --> 07:42
Or what we called it in the skit, we called it…
07:42 --> 07:44
“Commonly used rules”
07:44 --> 07:44
Yeah
07:44 --> 07:48
But in technical terms, we call them protocols
07:49 --> 07:50
And you, Marko, have prepared
07:50 --> 07:52
a mini lesson for us, haven’t you? – Yeah
07:52 --> 07:54
I think it’s good to start from the
07:54 --> 07:57
definition and from the beginning
07:57 --> 08:02
So the “REST” means
REpresentational State Transfer
08:02 --> 08:06
And it’s an
architectural style for designing
08:06 --> 08:09
distributed systems as APIs
08:10 --> 08:15
And it was originally defined by
Roy Fielding in his 2000…
08:15 --> 08:17
Boring
08:17 --> 08:19
Not inte-REST-ing
08:19 --> 08:20
Okay
08:20 --> 08:21
You have to do better
08:21 --> 08:24
Let’s talk about a pizza
restaurant then
08:24 --> 08:25
(start)
08:25 --> 08:28
Okay, so imagine the REST API
08:28 --> 08:29
as a pizza place
08:29 --> 08:31
but instead of phone calls
08:31 --> 08:33
we use an ordering app
08:33 --> 08:35
Every time the app needs something
08:35 --> 08:36
from the restaurant
08:36 --> 08:39
like getting the menu or placing the order
08:39 --> 08:41
it needs to send a request
08:41 --> 08:43
All requests go to the restaurant’s
08:43 --> 08:44
special addresses
08:45 --> 08:46
Think phone numbers
08:46 --> 08:48
These are endpoints
08:48 --> 08:51
Now, what you do at each endpoint
08:51 --> 08:53
depends on the method you use
08:53 --> 08:54
like looking at the menu
08:54 --> 08:56
placing an order
08:56 --> 08:57
or tracking your delivery
08:57 --> 09:00
The four most common methods are
09:05 --> 09:07
Yeah, I know right?
09:07 --> 09:09
These keywords almost make total sense
09:11 --> 09:13
Let’s say you just want to see the menu
09:13 --> 09:14
With the GET method
09:14 --> 09:15
you’re asking
09:15 --> 09:18
“Hey, what pizzas do you have today?”
09:19 --> 09:21
The pizza place replies
09:21 --> 09:23
with the success code
09:23 --> 09:24
and a list
09:24 --> 09:27
That’s your status and response
09:27 --> 09:28
When you’re ready to order
09:28 --> 09:30
you send a POST request
09:30 --> 09:32
along with your order details
09:32 --> 09:33
also known as the payload
09:34 --> 09:35
In return
09:35 --> 09:38
the API gives you an order number
09:38 --> 09:39
your personal tracking code
09:40 --> 09:41
You need to save that one
09:42 --> 09:43
Cuz if you want to
09:43 --> 09:44
change your order later
09:44 --> 09:45
you use PUT
09:45 --> 09:47
with that number
09:47 --> 09:49
along with your update details
09:51 --> 09:53
What? 200?
09:53 --> 09:57
Mama Mia…
10:01 --> 10:02
And if you panic
10:02 --> 10:04
and completely change your mind
10:04 --> 10:06
DELETE cancels it
10:08 --> 10:09
So yeah
10:09 --> 10:11
That’s basically how Rest APIs work
10:11 --> 10:13
and how most of our apps
10:13 --> 10:14
and systems
10:14 --> 10:15
communicate with each other
10:21 --> 10:23
That sounds like a public buffet
10:23 --> 10:26
But what if you are running
an exclusive RESTaurant
10:26 --> 10:29
and want to RESTrict access
to VIPs only?
10:30 --> 10:32
Yeah, that’s a good point.
10:32 --> 10:35
If you want to only grant access
10:35 --> 10:38
to the VIP members only
10:39 --> 10:42
then you need to add authentication
to the whole process
10:43 --> 10:46
And that means that you need
a membership number
10:46 --> 10:49
in order to get access to the services
10:50 --> 10:52
And if you don’t have
a valid membership number
10:52 --> 10:54
then your access is denied
10:58 --> 10:59
You okay, Daniel?
10:59 --> 11:01
Looks like you’re zoning out
11:01 --> 11:04
Yeah, but it’s been a tough night
11:04 --> 11:05
My kid didn’t want to sleep
11:05 --> 11:07
That happened to me as well
11:07 --> 11:08
Yesterday, my daughter…
11:08 --> 11:10
So I told the cops
11:10 --> 11:12
What? Why?
11:12 --> 11:14
Cuz my kid clearly needed
11:14 --> 11:17
arrest (a REST)
11:20 --> 11:21
Okay.
11:21 --> 11:24
So let’s talk a little bit
about GraphQL as well
11:24 --> 11:27
That’s an alternative to REST
11:27 --> 11:30
So if REST is like calling
a pizza restaurant
11:31 --> 11:35
and ordering from the
existing menu with set options
11:35 --> 11:38
GraphQL could be thought of as a
11:38 --> 11:40
mobile pizza ordering app
11:40 --> 11:43
where inside the app, you can choose
11:43 --> 11:45
all of the extra options
11:45 --> 11:49
and the different choices in the app
11:49 --> 11:52
and then send it in only one request
11:52 --> 11:57
So to repeat,
with REST you are limited to fixed choices
11:57 --> 12:02
and with GraphQL, you get
everything you want in only one go
12:03 --> 12:06
So instead of REST, you use GRAPH
12:07 --> 12:09
Q-L
12:10 --> 12:14
Thank you, Marko,
for the amazing lecture about REST
12:14 --> 12:16
Now let’s put that to REST
12:16 --> 12:19
Or what do you say, Daniel?
12:19 --> 12:19
Yeah
12:19 --> 12:21
I took your puns!
12:21 --> 12:22
Let’s go to REST
12:22 --> 12:24
Yeah, let’s do that
12:25 --> 12:27
I hope you liked this episode
12:27 --> 12:30
We had so much fun filming it
12:30 --> 12:33
So until next time, keep learning
12:33 --> 12:35
Bye bye