1
00:00:00,270 --> 00:00:01,103
In this lesson,

2
00:00:01,103 --> 00:00:03,150
we'll discuss Integrations and APIs.

3
00:00:03,150 --> 00:00:05,520
Integrations and application program interfaces,

4
00:00:05,520 --> 00:00:07,950
or APIs as they're commonly called,

5
00:00:07,950 --> 00:00:09,240
are the unsung heroes

6
00:00:09,240 --> 00:00:11,040
behind the seamless interconnectivity

7
00:00:11,040 --> 00:00:12,300
and enhanced capabilities

8
00:00:12,300 --> 00:00:15,660
of today's modern software applications and automation.

9
00:00:15,660 --> 00:00:17,850
When it comes to automation and orchestration,

10
00:00:17,850 --> 00:00:19,290
integrations and APIs

11
00:00:19,290 --> 00:00:21,000
are really the fundamental elements

12
00:00:21,000 --> 00:00:22,950
that drive efficiency, innovation,

13
00:00:22,950 --> 00:00:25,350
and scalability in modern system.

14
00:00:25,350 --> 00:00:28,020
Before we dive into the specifics of each of these,

15
00:00:28,020 --> 00:00:31,822
let's take a moment to define both integration and an API.

16
00:00:31,822 --> 00:00:33,600
And integration refers to the process

17
00:00:33,600 --> 00:00:35,370
of combining different subsystems

18
00:00:35,370 --> 00:00:38,070
or components into one comprehensive system

19
00:00:38,070 --> 00:00:40,410
to ensure that they all function properly together.

20
00:00:40,410 --> 00:00:43,050
An API or Application Programming Interface

21
00:00:43,050 --> 00:00:44,400
is a set of rules

22
00:00:44,400 --> 00:00:46,440
and protocols that are used for building

23
00:00:46,440 --> 00:00:48,630
and integrating application software.

24
00:00:48,630 --> 00:00:51,180
An API will allow your product or service

25
00:00:51,180 --> 00:00:53,220
to talk to another product or service

26
00:00:53,220 --> 00:00:54,600
in a controlled environment

27
00:00:54,600 --> 00:00:57,570
in using a specific data exchange format.

28
00:00:57,570 --> 00:00:59,460
Now, when we talk about API,

29
00:00:59,460 --> 00:01:01,590
it's a library of programming utilities

30
00:01:01,590 --> 00:01:03,600
that are used to enable software developers

31
00:01:03,600 --> 00:01:04,860
to access functions

32
00:01:04,860 --> 00:01:08,220
or features of another application programmatically.

33
00:01:08,220 --> 00:01:10,680
APIs are probably the number one thing

34
00:01:10,680 --> 00:01:12,300
that we use in our integrations

35
00:01:12,300 --> 00:01:13,650
to be able to communicate

36
00:01:13,650 --> 00:01:15,900
between different portions of a microservice

37
00:01:15,900 --> 00:01:18,420
or service oriented architecture.

38
00:01:18,420 --> 00:01:19,980
By using an API,

39
00:01:19,980 --> 00:01:22,020
we can automate the administration,

40
00:01:22,020 --> 00:01:24,600
management and monitoring of various services

41
00:01:24,600 --> 00:01:26,160
and cloud-based infrastructures,

42
00:01:26,160 --> 00:01:28,830
as well as a lots of other applications.

43
00:01:28,830 --> 00:01:31,470
Commonly, our APIs will use either REST

44
00:01:31,470 --> 00:01:33,150
or SOAP to communicate.

45
00:01:33,150 --> 00:01:36,000
REST, or the Representational State Transfer

46
00:01:36,000 --> 00:01:37,380
is an architectural style

47
00:01:37,380 --> 00:01:39,210
that uses standard HTTP methods

48
00:01:39,210 --> 00:01:40,380
and status codes,

49
00:01:40,380 --> 00:01:43,380
uniform resource identifiers, and MIME types

50
00:01:43,380 --> 00:01:46,650
to achieve a simple way to interact in a stateless manner

51
00:01:46,650 --> 00:01:49,200
with a given web service.

52
00:01:49,200 --> 00:01:52,320
REST usually relies on using the JSON format

53
00:01:52,320 --> 00:01:53,460
when transferring data,

54
00:01:53,460 --> 00:01:55,980
which also makes it a very lightweight protocol

55
00:01:55,980 --> 00:01:58,590
that can be easily integrated with existing websites

56
00:01:58,590 --> 00:02:00,630
without needing to perform any kind

57
00:02:00,630 --> 00:02:02,370
of extensive modifications.

58
00:02:02,370 --> 00:02:05,580
SOAP or Simple Object Access Protocol,

59
00:02:05,580 --> 00:02:07,890
is a protocol that defines a strict standard

60
00:02:07,890 --> 00:02:09,870
with a set structure for the message,

61
00:02:09,870 --> 00:02:11,580
usually in XML format,

62
00:02:11,580 --> 00:02:13,290
that includes a header in a body

63
00:02:13,290 --> 00:02:14,760
that is used to transport data

64
00:02:14,760 --> 00:02:16,410
between two different services.

65
00:02:16,410 --> 00:02:19,260
SOAP is known for being more robust than REST

66
00:02:19,260 --> 00:02:21,270
by having some additional security features

67
00:02:21,270 --> 00:02:24,150
and its ability to provide transaction compliance.

68
00:02:24,150 --> 00:02:25,320
This makes it a great choice

69
00:02:25,320 --> 00:02:27,570
for any enterprise level web services

70
00:02:27,570 --> 00:02:28,950
where complex transactions

71
00:02:28,950 --> 00:02:30,900
and regulatory compliance are essential.

72
00:02:30,900 --> 00:02:33,000
While REST is generally more straightforward

73
00:02:33,000 --> 00:02:34,980
and adaptable to utilize,

74
00:02:34,980 --> 00:02:36,210
SOAP does provide us

75
00:02:36,210 --> 00:02:37,650
with a higher level of security

76
00:02:37,650 --> 00:02:38,940
and transactional integrity

77
00:02:38,940 --> 00:02:42,060
that caters to some different use cases and requirements.

78
00:02:42,060 --> 00:02:44,100
Now, when we talk about APIs,

79
00:02:44,100 --> 00:02:47,070
we think about these from a perspective of integration.

80
00:02:47,070 --> 00:02:48,900
APIs allow for integration

81
00:02:48,900 --> 00:02:50,550
between lots of different services,

82
00:02:50,550 --> 00:02:52,470
especially cloud-based services.

83
00:02:52,470 --> 00:02:54,600
Most cloud-based service providers

84
00:02:54,600 --> 00:02:56,370
also allow us to do provisioning,

85
00:02:56,370 --> 00:02:58,170
configuration, deprovisioning,

86
00:02:58,170 --> 00:02:59,940
and lots of other things to the services

87
00:02:59,940 --> 00:03:01,740
by using these APIs.

88
00:03:01,740 --> 00:03:03,360
APIs will also allow us

89
00:03:03,360 --> 00:03:04,980
to have direct integration

90
00:03:04,980 --> 00:03:06,660
of different third party applications

91
00:03:06,660 --> 00:03:08,640
into our own web applications.

92
00:03:08,640 --> 00:03:11,910
By using APIs, we can integrate services together

93
00:03:11,910 --> 00:03:13,950
and make function calls to those services,

94
00:03:13,950 --> 00:03:17,130
instead of having to build an entire service ourself.

95
00:03:17,130 --> 00:03:18,030
With the API,

96
00:03:18,030 --> 00:03:20,250
we can just call on someone else's function

97
00:03:20,250 --> 00:03:21,990
and let their service do the work for us

98
00:03:21,990 --> 00:03:24,030
and return the results back to us.

99
00:03:24,030 --> 00:03:26,760
This is the whole idea of creating a microservice

100
00:03:26,760 --> 00:03:28,590
or service-oriented architecture

101
00:03:28,590 --> 00:03:31,830
instead of building a monolithic web application.

102
00:03:31,830 --> 00:03:33,780
Now, let me give you a great example

103
00:03:33,780 --> 00:03:36,420
of how we use integrations and APIs

104
00:03:36,420 --> 00:03:38,610
in our business here at Dion Training.

105
00:03:38,610 --> 00:03:40,620
To conduct our student support functions,

106
00:03:40,620 --> 00:03:41,550
we use centralized

107
00:03:41,550 --> 00:03:44,370
service management system called Freshdesk.

108
00:03:44,370 --> 00:03:47,280
Freshdesk is a commercial software as a service product

109
00:03:47,280 --> 00:03:48,810
that we pay for every month,

110
00:03:48,810 --> 00:03:50,130
and we use this to be able

111
00:03:50,130 --> 00:03:51,870
to get all of our trouble tickets

112
00:03:51,870 --> 00:03:53,760
or questions submitted by our students,

113
00:03:53,760 --> 00:03:55,590
and then we can track those things

114
00:03:55,590 --> 00:03:58,800
to make sure that you're getting the answers you requested.

115
00:03:58,800 --> 00:04:00,660
So the way we have it configured

116
00:04:00,660 --> 00:04:03,930
is that if you email support@diontraining.com,

117
00:04:03,930 --> 00:04:06,030
it will get sent to our Freshdesk system

118
00:04:06,030 --> 00:04:08,280
so that our team can look at those emails,

119
00:04:08,280 --> 00:04:09,660
which we call tickets,

120
00:04:09,660 --> 00:04:12,180
and then answer the question that you sent us.

121
00:04:12,180 --> 00:04:14,820
You can think about this as a shared inbox,

122
00:04:14,820 --> 00:04:16,860
but since it's actually a ticketing system,

123
00:04:16,860 --> 00:04:17,760
we won't lose track

124
00:04:17,760 --> 00:04:19,950
of any requests we receive from our students

125
00:04:19,950 --> 00:04:21,839
so that we can make sure everyone's questions

126
00:04:21,839 --> 00:04:24,120
are being answered promptly.

127
00:04:24,120 --> 00:04:27,173
Now, we also provide some of our courses on Udemy

128
00:04:27,173 --> 00:04:29,580
and the Udemy students also want to be able

129
00:04:29,580 --> 00:04:32,010
to ask us questions about those courses.

130
00:04:32,010 --> 00:04:34,830
But most Udemy students don't email us directly,

131
00:04:34,830 --> 00:04:36,930
and instead they simply post their questions

132
00:04:36,930 --> 00:04:40,140
inside the question and answer section of that website.

133
00:04:40,140 --> 00:04:42,540
Unfortunately, Udemy Q&A system

134
00:04:42,540 --> 00:04:44,400
was never designed to support instructors

135
00:04:44,400 --> 00:04:45,480
like Dion training

136
00:04:45,480 --> 00:04:47,430
to have over a million Udemy students.

137
00:04:47,430 --> 00:04:49,770
So it is really easy for students questions

138
00:04:49,770 --> 00:04:51,360
to get missed in a Q&A section.

139
00:04:51,360 --> 00:04:52,980
To overcome this limitation,

140
00:04:52,980 --> 00:04:53,850
we would need to be able

141
00:04:53,850 --> 00:04:55,350
to rewrite the Udemy website

142
00:04:55,350 --> 00:04:57,270
to add the ticketing system capability

143
00:04:57,270 --> 00:04:59,970
to our instructor backend of the Udemy system.

144
00:04:59,970 --> 00:05:01,800
Since Dion Training doesn't own Udemy

145
00:05:01,800 --> 00:05:03,060
and we don't have access

146
00:05:03,060 --> 00:05:05,550
or rights to modify their website's code base,

147
00:05:05,550 --> 00:05:07,140
we cannot add a ticketing system

148
00:05:07,140 --> 00:05:09,270
to the Udemy instructor backend.

149
00:05:09,270 --> 00:05:12,000
So how can I get all of those Q&A posts

150
00:05:12,000 --> 00:05:13,950
loaded into my first desk ticketing system

151
00:05:13,950 --> 00:05:15,060
so that we can track

152
00:05:15,060 --> 00:05:16,800
and answer all of our students

153
00:05:16,800 --> 00:05:18,720
without missing any of those questions?

154
00:05:18,720 --> 00:05:20,790
Well, if you guess that we should use an API,

155
00:05:20,790 --> 00:05:22,140
you are correct.

156
00:05:22,140 --> 00:05:24,360
Udemy has created an API

157
00:05:24,360 --> 00:05:26,670
that allows anyone to programmatically read

158
00:05:26,670 --> 00:05:29,010
and respond to any Q&A posts.

159
00:05:29,010 --> 00:05:31,350
So our development team at Dion Training

160
00:05:31,350 --> 00:05:34,050
spent about a week creating a small integration

161
00:05:34,050 --> 00:05:36,090
to curate the Udemy API.

162
00:05:36,090 --> 00:05:38,820
At any time there's a new Q&A post-it,

163
00:05:38,820 --> 00:05:41,070
we read it from the Udemy API,

164
00:05:41,070 --> 00:05:43,110
and then create a new ticket in Freshdesk

165
00:05:43,110 --> 00:05:45,660
using the Freshdesk API.

166
00:05:45,660 --> 00:05:48,060
Now, all of our Udemy Q&As

167
00:05:48,060 --> 00:05:50,310
will show up as trouble tickets in our system

168
00:05:50,310 --> 00:05:52,241
just as if the student emailed us

169
00:05:52,241 --> 00:05:54,480
at support@diontraining.com.

170
00:05:54,480 --> 00:05:56,850
Now, when our team answers the question,

171
00:05:56,850 --> 00:05:58,680
instead of sending the response by email,

172
00:05:58,680 --> 00:06:01,470
since we don't know the Udemy student's email address,

173
00:06:01,470 --> 00:06:03,600
our system runs another automation

174
00:06:03,600 --> 00:06:05,790
that will read the response from our Freshdesk ticket

175
00:06:05,790 --> 00:06:07,260
using their API,

176
00:06:07,260 --> 00:06:10,500
and then post it as an answer to the Udemy Q&A

177
00:06:10,500 --> 00:06:12,480
using the Udemy API.

178
00:06:12,480 --> 00:06:15,207
This is the type of integration that you can do using API,

179
00:06:15,207 --> 00:06:17,850
and in this case, the entire integration program

180
00:06:17,850 --> 00:06:20,730
is less than 150 lines of Python code

181
00:06:20,730 --> 00:06:24,720
running in a serverless AWS Lambda environment.

182
00:06:24,720 --> 00:06:26,910
The entire thing took us about one to two weeks

183
00:06:26,910 --> 00:06:28,800
to create, test and deploy,

184
00:06:28,800 --> 00:06:31,290
and it only cost us about $1 per month

185
00:06:31,290 --> 00:06:34,590
to run this code every four hours to get the new Q&As,

186
00:06:34,590 --> 00:06:36,120
create the trouble tickets

187
00:06:36,120 --> 00:06:38,820
and post the responses back to the Q&A section

188
00:06:38,820 --> 00:06:40,470
once our team answers them.

189
00:06:40,470 --> 00:06:42,360
This integration allows our team

190
00:06:42,360 --> 00:06:43,500
to work more efficiently

191
00:06:43,500 --> 00:06:46,080
since they can answer all student questions in one place

192
00:06:46,080 --> 00:06:47,220
inside of Freshdesk,

193
00:06:47,220 --> 00:06:49,620
and then the answers are sent back to the student

194
00:06:49,620 --> 00:06:51,180
to their preferred support channel,

195
00:06:51,180 --> 00:06:53,280
either email or to the Q&A section,

196
00:06:53,280 --> 00:06:56,250
depending on where they submitted their question initially.

197
00:06:56,250 --> 00:06:57,083
For the student,

198
00:06:57,083 --> 00:06:58,800
they will never know anything is happening

199
00:06:58,800 --> 00:07:00,450
in the background with this integration,

200
00:07:00,450 --> 00:07:02,970
but instead, it looks as if I or Jason

201
00:07:02,970 --> 00:07:04,470
log directly into Udemy

202
00:07:04,470 --> 00:07:07,170
and responded to the Q&A that you posted.

203
00:07:07,170 --> 00:07:08,250
But for our team,

204
00:07:08,250 --> 00:07:09,690
it is easier for us to manage

205
00:07:09,690 --> 00:07:12,600
and allows us to help more students quickly.

206
00:07:12,600 --> 00:07:15,330
Another example of using an API integration

207
00:07:15,330 --> 00:07:17,220
is one that we built that allows our students

208
00:07:17,220 --> 00:07:20,100
to access our hands-on cloud-based labs

209
00:07:20,100 --> 00:07:22,440
inside of any of our courses that you may have purchased

210
00:07:22,440 --> 00:07:24,210
on diontraining.com.

211
00:07:24,210 --> 00:07:26,910
So if you take a course at diontraining.com,

212
00:07:26,910 --> 00:07:29,100
you'll see video lessons, quizzes,

213
00:07:29,100 --> 00:07:30,600
our downloadable study guides,

214
00:07:30,600 --> 00:07:31,920
and our practice exam,

215
00:07:31,920 --> 00:07:34,080
all of which we created ourselves.

216
00:07:34,080 --> 00:07:36,600
But when you get to the Lab-based section,

217
00:07:36,600 --> 00:07:39,540
you will simply click on the link that says launch the lab.

218
00:07:39,540 --> 00:07:41,400
The lab environment will be returned to you

219
00:07:41,400 --> 00:07:43,170
inside of our learning management system

220
00:07:43,170 --> 00:07:45,150
using this backend integration.

221
00:07:45,150 --> 00:07:46,530
When it comes to the labs,

222
00:07:46,530 --> 00:07:48,210
we don't build those ourselves,

223
00:07:48,210 --> 00:07:50,610
but instead we rely on a third party partner

224
00:07:50,610 --> 00:07:51,540
that we work with,

225
00:07:51,540 --> 00:07:53,850
and we use them to integrate their labs

226
00:07:53,850 --> 00:07:55,260
into your course experience,

227
00:07:55,260 --> 00:07:57,390
and we want it to be integrated in a way

228
00:07:57,390 --> 00:07:58,530
so that you don't even realize

229
00:07:58,530 --> 00:08:00,450
that it was a third party provider tool.

230
00:08:00,450 --> 00:08:02,100
In fact, in the old days,

231
00:08:02,100 --> 00:08:03,810
we used to not have this integration,

232
00:08:03,810 --> 00:08:06,600
and instead, our students had to log into the lab provider

233
00:08:06,600 --> 00:08:08,220
the different username and password,

234
00:08:08,220 --> 00:08:09,750
and then select the lab that they needed

235
00:08:09,750 --> 00:08:11,490
to take at a specific time.

236
00:08:11,490 --> 00:08:13,680
By using this API integration,

237
00:08:13,680 --> 00:08:15,090
we remove the need for you having

238
00:08:15,090 --> 00:08:16,980
to use another username and password

239
00:08:16,980 --> 00:08:18,750
and the need to go to a different website,

240
00:08:18,750 --> 00:08:20,130
and the need for you to figure out

241
00:08:20,130 --> 00:08:22,050
which lab for the 20 or 30

242
00:08:22,050 --> 00:08:23,190
that are included in the course

243
00:08:23,190 --> 00:08:25,350
should be performed at that specific time.

244
00:08:25,350 --> 00:08:26,730
But with our integration,

245
00:08:26,730 --> 00:08:28,650
the whole experience is optimized.

246
00:08:28,650 --> 00:08:31,170
So if you're taking a course at diontraining.com,

247
00:08:31,170 --> 00:08:33,539
you'll have access to that full lab environment.

248
00:08:33,539 --> 00:08:35,039
As you're going through the course,

249
00:08:35,039 --> 00:08:35,909
you'll watch a video

250
00:08:35,909 --> 00:08:37,477
and eventually get to the one that says,

251
00:08:37,477 --> 00:08:38,850
"Now here's the lab.

252
00:08:38,850 --> 00:08:41,610
In this lab, you're going to do X, Y, and Z.

253
00:08:41,610 --> 00:08:43,409
Click this link to start the lab",

254
00:08:43,409 --> 00:08:45,210
and that link actually looks something

255
00:08:45,210 --> 00:08:47,700
like you would see here on the screen.

256
00:08:47,700 --> 00:08:52,200
It says something like diontraining.com?Action=

257
00:08:52,200 --> 00:08:54,780
run instance and ID equals,

258
00:08:54,780 --> 00:08:56,130
and the count

259
00:08:56,130 --> 00:08:59,010
and the access key and all those things.

260
00:08:59,010 --> 00:09:01,110
These are the parameters that we're passing

261
00:09:01,110 --> 00:09:03,300
to the API of our lab provider.

262
00:09:03,300 --> 00:09:04,860
This allows our lab partner

263
00:09:04,860 --> 00:09:07,140
to know which of our students is taking the lab

264
00:09:07,140 --> 00:09:08,940
based on their student ID,

265
00:09:08,940 --> 00:09:10,980
which lesson they're at in the course,

266
00:09:10,980 --> 00:09:12,600
which lab needs to be ran,

267
00:09:12,600 --> 00:09:14,490
and the authorization token.

268
00:09:14,490 --> 00:09:16,080
We send all of these details

269
00:09:16,080 --> 00:09:18,240
to our lab provider using their API

270
00:09:18,240 --> 00:09:21,030
and in return, they provide us with the lab information

271
00:09:21,030 --> 00:09:22,800
and the lab launch link

272
00:09:22,800 --> 00:09:24,810
that will be displayed on your screen.

273
00:09:24,810 --> 00:09:26,790
This is actually a magic link

274
00:09:26,790 --> 00:09:28,200
that will let you open the lab

275
00:09:28,200 --> 00:09:29,940
within the next three minutes.

276
00:09:29,940 --> 00:09:31,380
Once you click on that link,

277
00:09:31,380 --> 00:09:32,310
it will load the lab

278
00:09:32,310 --> 00:09:35,100
inside of our learning management system for you.

279
00:09:35,100 --> 00:09:36,240
You may have also noticed

280
00:09:36,240 --> 00:09:38,250
that the URL has an authorization token

281
00:09:38,250 --> 00:09:39,930
including in it as well.

282
00:09:39,930 --> 00:09:41,460
This is because the cloud provider

283
00:09:41,460 --> 00:09:42,690
needs to be able to know

284
00:09:42,690 --> 00:09:43,800
who they're servicing

285
00:09:43,800 --> 00:09:46,680
because we have hundreds of thousands of students,

286
00:09:46,680 --> 00:09:48,720
and by knowing which student you are,

287
00:09:48,720 --> 00:09:50,550
they can give you the right services

288
00:09:50,550 --> 00:09:52,950
that we already paid for on your behalf

289
00:09:52,950 --> 00:09:54,690
so that you're not charged anything additional

290
00:09:54,690 --> 00:09:55,590
to access these labs.

291
00:09:55,590 --> 00:09:57,840
Now that we understand a little bit more

292
00:09:57,840 --> 00:10:00,900
about application programming interfaces and integrations.

293
00:10:00,900 --> 00:10:03,930
You may be wondering how can you test if a given API

294
00:10:03,930 --> 00:10:06,510
is working properly in your existing automation?

295
00:10:06,510 --> 00:10:09,540
One of my favorite tools to interact with an API

296
00:10:09,540 --> 00:10:11,130
is the Curl tool.

297
00:10:11,130 --> 00:10:15,030
Curl comes install by default and Linux and MacOS systems,

298
00:10:15,030 --> 00:10:18,780
but you can also install it yourself on your Windows system.

299
00:10:18,780 --> 00:10:21,270
Curl is a tool used to transfer data

300
00:10:21,270 --> 00:10:22,800
to and from a server,

301
00:10:22,800 --> 00:10:24,810
using one of the supported protocols,

302
00:10:24,810 --> 00:10:28,560
including HTTP, HTTPS, FTP,

303
00:10:30,270 --> 00:10:31,620
FTPS,

304
00:10:31,620 --> 00:10:32,940
SCP,

305
00:10:32,940 --> 00:10:34,800
SFTP,

306
00:10:34,800 --> 00:10:36,630
TFTP,

307
00:10:36,630 --> 00:10:38,580
DICT,

308
00:10:38,580 --> 00:10:39,660
TELNET,

309
00:10:39,660 --> 00:10:41,910
LDAP or FILE.

310
00:10:41,910 --> 00:10:45,120
Now, all of these protocols can be used with Curl

311
00:10:45,120 --> 00:10:47,370
and the one you will use to test the API,

312
00:10:47,370 --> 00:10:50,550
it's usually going to be HTTP or HTTPS,

313
00:10:50,550 --> 00:10:52,770
depending on if you're testing an API

314
00:10:52,770 --> 00:10:54,450
that is using an insecure connection

315
00:10:54,450 --> 00:10:56,460
or a secure connection.

316
00:10:56,460 --> 00:10:58,710
So how do you use Curl?

317
00:10:58,710 --> 00:11:00,600
As a cybersecurity professional,

318
00:11:00,600 --> 00:11:02,760
I can use Curl to test an API

319
00:11:02,760 --> 00:11:04,410
by using the basic command,

320
00:11:04,410 --> 00:11:08,490
curl, space, dash, dash, data space,

321
00:11:08,490 --> 00:11:10,140
the argument that you want to pass,

322
00:11:10,140 --> 00:11:12,420
and then the URL of the API.

323
00:11:12,420 --> 00:11:17,420
So for example, if I wanted to test the httpbin.org API,

324
00:11:17,970 --> 00:11:21,107
I could enter something like curl --data

325
00:11:21,107 --> 00:11:24,774
"firstname=boolean&lastname=world"

326
00:11:26,646 --> 00:11:31,563
https://http.bin.org/post.

327
00:11:34,595 --> 00:11:37,397
In this case, I'm sending the first name equals boolean,

328
00:11:37,397 --> 00:11:38,910
and the last name equals world.

329
00:11:38,910 --> 00:11:43,310
And then I'm sending this to https"//httpbin.org/post.

330
00:11:47,070 --> 00:11:48,450
When I'm sending that information,

331
00:11:48,450 --> 00:11:51,210
what will I receive back from the API?

332
00:11:51,210 --> 00:11:54,330
Well, for the httpbin API,

333
00:11:54,330 --> 00:11:56,850
we will receive something in a JSON format

334
00:11:56,850 --> 00:11:58,980
that has data that includes a list of arguments

335
00:11:58,980 --> 00:12:02,400
and fields that came back from that particular API.

336
00:12:02,400 --> 00:12:04,980
This allows you to send the data over the API

337
00:12:04,980 --> 00:12:06,900
and see what comes back as response,

338
00:12:06,900 --> 00:12:08,520
which is very helpful if you're working

339
00:12:08,520 --> 00:12:09,690
as a software developer

340
00:12:09,690 --> 00:12:11,790
or cybersecurity software engineer

341
00:12:11,790 --> 00:12:13,530
as part of a penetration test.

342
00:12:13,530 --> 00:12:15,510
So remember, integrations

343
00:12:15,510 --> 00:12:18,540
and APIs are used to seamlessly create interconnections

344
00:12:18,540 --> 00:12:20,310
between different services to enhance

345
00:12:20,310 --> 00:12:22,170
their default capabilities.

346
00:12:22,170 --> 00:12:23,790
Integration refers to the process

347
00:12:23,790 --> 00:12:26,340
of combining different subsystems or components

348
00:12:26,340 --> 00:12:28,350
into one comprehensive system

349
00:12:28,350 --> 00:12:31,200
to ensure that they function properly together.

350
00:12:31,200 --> 00:12:33,990
An API or Application programming interface,

351
00:12:33,990 --> 00:12:35,970
is a set of rules and protocols

352
00:12:35,970 --> 00:12:37,350
that are used for building

353
00:12:37,350 --> 00:12:39,330
and integrating application software.

354
00:12:39,330 --> 00:12:41,760
An API will allow your product or service

355
00:12:41,760 --> 00:12:43,740
to talk to another product or service

356
00:12:43,740 --> 00:12:45,060
in a controlled environment

357
00:12:45,060 --> 00:12:48,330
and using a specific data exchange format.

358
00:12:48,330 --> 00:12:50,610
When we are using automation or orchestration,

359
00:12:50,610 --> 00:12:52,260
we rely heavily on the APIs

360
00:12:52,260 --> 00:12:53,580
to create an interconnection

361
00:12:53,580 --> 00:12:55,440
between our different microservices

362
00:12:55,440 --> 00:12:58,623
or services provided by our third party partners.

