WEBVTT
00:00:11.820 --> 00:00:15.320
So the next session would be on Tuesday, right?
00:00:17.160 --> 00:00:21.320
Oh, actually, I've set up the Anypoint Studio and all in that specific desktops.
00:00:21.460 --> 00:00:23.000
I think we're good to go there exactly.
00:00:23.280 --> 00:00:23.800
Yeah.
00:00:23.820 --> 00:00:28.640
Actually, I am planning to use Zoom for sharing my screen.
00:00:28.640 --> 00:00:35.600
So I do have a couple of backgrounds to be drawn to explain the control flows and all.
00:00:35.920 --> 00:00:37.680
So I'll be using both of them, actually.
00:00:44.200 --> 00:00:45.840
Hi, Mark, how are you doing?
00:00:46.760 --> 00:00:49.100
Yeah. Yeah, I'm doing great.
00:00:50.800 --> 00:00:56.260
So first, let me just explain you a couple of things before we start.
00:00:56.260 --> 00:01:03.760
So basically, I'll be sharing my presentation with you and just going through the slides.
00:01:04.280 --> 00:01:08.160
That will be the primary information that I'm going to pass to you.
00:01:08.400 --> 00:01:11.240
And for explaining, I'll be using Pro.io.
00:01:11.660 --> 00:01:17.500
So basically, that's a kind of whiteboard application where I'll be drawing out
00:01:18.560 --> 00:01:24.080
a couple of workflows and control flows, how exactly things go in MuleSoft and all.
00:01:24.080 --> 00:01:25.760
So that would be one.
00:01:26.240 --> 00:01:28.400
And regarding the topics.
00:01:28.500 --> 00:01:32.420
So here we have a couple of topics in the course outline, right?
00:01:33.220 --> 00:01:39.940
So they are designed under specific pointers and placed under a header, right?
00:01:40.000 --> 00:01:43.140
Let's say for getting started, we do have preparing the development environment
00:01:43.140 --> 00:01:46.700
and API directories and navigating throughout the Anypoint platform.
00:01:46.920 --> 00:01:54.060
And also, I'll be just going through these pointers, but not in a straight way.
00:01:54.080 --> 00:01:57.960
So I'll be jumping here and jumping there.
00:01:58.560 --> 00:02:01.580
So it's like a mix and match of here and there.
00:02:01.840 --> 00:02:05.100
But I'll be covering all of them so that we'll be having a context
00:02:06.300 --> 00:02:09.160
from what exactly the point is and how to start.
00:02:10.320 --> 00:02:11.580
So, yeah, I'll share my screen.
00:02:12.320 --> 00:02:13.700
Let me know if it is visible to you.
00:02:16.520 --> 00:02:21.320
OK, so let me just give you a brief introduction.
00:02:21.320 --> 00:02:24.760
I hope you already know about MuleSoft, why it is used.
00:02:25.620 --> 00:02:29.400
I'll just give you, yeah.
00:02:30.040 --> 00:02:32.840
We'll be using MuleSoft to integrate
00:02:34.680 --> 00:02:38.100
APIs. So let's say there are two or three applications
00:02:38.100 --> 00:02:41.480
specific business is using.
00:02:41.880 --> 00:02:44.700
Let's say a business has its workflows
00:02:45.680 --> 00:02:49.980
specifically for logging in user or logging in administrators
00:02:49.980 --> 00:02:53.380
or that is one of the workflow, you can say,
00:02:53.440 --> 00:02:56.020
for using for logging in purposes.
00:02:56.440 --> 00:03:00.320
And you have catalogs of the product catalog, you can say.
00:03:01.040 --> 00:03:04.000
And the APS related to those catalogs, let's say,
00:03:04.200 --> 00:03:07.400
add a product or delete a product or modify a product.
00:03:07.780 --> 00:03:11.120
So of course, related to that specific product implementation.
00:03:11.500 --> 00:03:13.140
Let's say you have delivery.
00:03:13.760 --> 00:03:18.080
So let's say user order a product and you will be tracking the delivery
00:03:18.080 --> 00:03:21.900
and marking to marking whether the delivery has happened
00:03:21.900 --> 00:03:24.300
or it just came around.
00:03:24.720 --> 00:03:26.940
So workflows related to delivery aspects.
00:03:27.200 --> 00:03:28.920
So we'll be having a headers.
00:03:30.580 --> 00:03:32.640
Each and every organization has its,
00:03:32.640 --> 00:03:36.540
you know, control spread across different, different implementations,
00:03:36.960 --> 00:03:39.280
whether that might be a specific product catalog
00:03:39.280 --> 00:03:43.520
or whether that might be a product or specific implementation aspects
00:03:43.520 --> 00:03:48.900
or delivery aspects or management of data behind the scenes
00:03:48.900 --> 00:03:52.380
where customers are not, you know, easily interacting with whether
00:03:52.380 --> 00:03:55.600
I mean, customers even don't know whether we are, you know,
00:03:56.440 --> 00:03:58.060
managing the data behind the scenes.
00:03:58.060 --> 00:04:00.080
So for all these purposes, we do have different,
00:04:00.120 --> 00:04:04.720
different APIs integrated with them in order to integrate.
00:04:05.080 --> 00:04:08.480
I mean, in order to communicate between system and system communication,
00:04:08.800 --> 00:04:10.400
various system and system communication.
00:04:10.400 --> 00:04:14.880
I do mean, let's say,
00:04:14.880 --> 00:04:17.200
wanted to have a couple of web applications
00:04:17.200 --> 00:04:19.360
which are running doing a specific job,
00:04:20.620 --> 00:04:25.720
whether that job might be front end user based applications.
00:04:27.280 --> 00:04:28.560
Let's say a.
00:04:30.860 --> 00:04:34.060
You know, user interface applications
00:04:34.820 --> 00:04:38.940
like shopping applications or, you know, mobile applications or
00:04:38.940 --> 00:04:42.800
these are applications which are user interfacing applications user.
00:04:43.060 --> 00:04:45.360
I mean, the end user or the customers directly contract
00:04:45.360 --> 00:04:48.580
contact with the system by the help of these applications.
00:04:48.800 --> 00:04:54.280
And we have backdoor applications where analytics people will work on them.
00:04:54.380 --> 00:04:56.780
Let's say we do have a business and the team
00:04:57.320 --> 00:05:00.380
which mostly work on the data that is being produced
00:05:00.900 --> 00:05:02.440
by the front end applications.
00:05:02.900 --> 00:05:07.200
And we'll be doing and gathering the insights from those data.
00:05:07.200 --> 00:05:09.620
So this is a back end application.
00:05:10.080 --> 00:05:12.920
I mean, the end users and your end customers,
00:05:14.180 --> 00:05:17.060
you, I mean, by the word you, I mean, the company's end users
00:05:17.060 --> 00:05:21.480
or end customers will not be interacting with this end application.
00:05:21.920 --> 00:05:25.820
But this end application wants to interact with the user interface application.
00:05:26.200 --> 00:05:30.240
So this is like a typical scenario where we'll be using MuleSoft.
00:05:30.660 --> 00:05:35.100
So MuleSoft is a kind of middle man, you can say,
00:05:35.100 --> 00:05:39.260
which helps us integrating different, different
00:05:40.160 --> 00:05:45.440
applications, which are highly coupled when it comes to data
00:05:45.440 --> 00:05:47.900
or communication is concerned.
00:05:48.580 --> 00:05:51.380
So, I mean, so you're getting my point, right?
00:05:52.280 --> 00:05:54.640
Exactly. Yeah.
00:05:55.180 --> 00:05:58.340
So the word translator is fine
00:05:58.340 --> 00:06:02.480
as soon as it is on our human understanding.
00:06:02.480 --> 00:06:05.280
But let's say, but
00:06:05.280 --> 00:06:10.840
you need to have a specific way to encode and decode communication.
00:06:11.140 --> 00:06:14.100
Right. So that's where APS comes into picture.
00:06:14.540 --> 00:06:17.920
So in order to say in a layman language, basically,
00:06:19.000 --> 00:06:23.780
it takes care of APIs that is that is like inbound into MuleSoft
00:06:23.780 --> 00:06:28.280
and it provides them the outbound capabilities in order to, you know,
00:06:29.320 --> 00:06:31.520
have a couple of dumps
00:06:31.520 --> 00:06:36.440
where it wanted to dump data and other applications will be fetching data from there itself.
00:06:36.860 --> 00:06:40.140
So that's where it all fits into the ecosystem.
00:06:40.580 --> 00:06:44.880
So basically, it unifies the data for delivering a single view.
00:06:45.860 --> 00:06:49.960
So let's say you wanted to have all these applications that are managed in a
00:06:50.480 --> 00:06:55.360
single ecosystem or single environment so that customers or builds
00:06:55.360 --> 00:07:00.320
has, you know, collective experience or unified experience.
00:07:00.840 --> 00:07:07.500
And we don't want to kind of look out for each and for each and every automation process.
00:07:07.560 --> 00:07:09.540
We don't want to look out for any other tool.
00:07:09.880 --> 00:07:14.920
MuleSoft has it all tools integrated within itself so that we don't need to go for
00:07:14.920 --> 00:07:20.240
and check out for any other tool which is suitable for our end user implementations.
00:07:20.520 --> 00:07:25.860
So that is a deep introduction about MuleSoft and how it fits in the whole ecosystem.
00:07:26.340 --> 00:07:30.300
And when it comes to technology that MuleSoft is built on,
00:07:30.320 --> 00:07:36.040
so right now for all the MuleSoft developments and deployments,
00:07:36.320 --> 00:07:37.780
they're done on top of Java.
00:07:38.320 --> 00:07:43.520
So basically, right now, the latest version of MuleSoft that is being implemented,
00:07:43.720 --> 00:07:49.260
it's on Java 17, but initially the long term support is there for Java 8.
00:07:49.820 --> 00:07:55.760
So MuleSoft started its journey with Java 8 and it is being built on JVM implementations.
00:07:56.080 --> 00:07:59.660
When I say JVM, to give you a brief introduction about JVM,
00:07:59.660 --> 00:08:01.600
it's like Java virtual machine.
00:08:01.600 --> 00:08:08.940
So whenever you create Java applications or Java machines or
00:08:09.840 --> 00:08:14.020
Java enterprise servers or anything which are written on Java,
00:08:14.240 --> 00:08:17.440
they need to have a runtime environment where they need to run right.
00:08:17.700 --> 00:08:20.780
So that is provided by Java runtime environment.
00:08:21.060 --> 00:08:23.460
And we do have Java development kit.
00:08:23.700 --> 00:08:27.820
So basically, in order to deploy a MuleSoft application or in order to
00:08:27.820 --> 00:08:31.620
develop a MuleSoft application or in order to test a MuleSoft application,
00:08:31.780 --> 00:08:34.340
we need to have, compulsorily, we need to have Java.
00:08:34.460 --> 00:08:38.340
So it's like a prerequisite, but will not be highly interacting
00:08:38.340 --> 00:08:41.600
with the Java and it will be done by MuleSoft itself under the code.
00:08:42.040 --> 00:08:45.120
So you will not have any interaction with Java and there is no,
00:08:45.160 --> 00:08:49.200
not at all expectation for you to understand Java or anything.
00:08:49.360 --> 00:08:52.260
But if you want to have, you know,
00:08:53.540 --> 00:08:59.080
hiring or, you know, hiring people based on MuleSoft,
00:08:59.260 --> 00:09:03.680
having understanding on a little bit on Java would be giving them,
00:09:03.680 --> 00:09:08.520
you know, a point to understand where things goes on,
00:09:08.680 --> 00:09:11.820
how the control flow happens and how, you know,
00:09:12.920 --> 00:09:17.000
the things goes from one point to other point inside the MuleSoft.
00:09:17.280 --> 00:09:19.900
So that's where it hits on whole ecosystem basically.
00:09:20.500 --> 00:09:25.260
And, but how exactly things are built on MuleSoft.
00:09:25.680 --> 00:09:30.940
So let's say what is exactly the development environment for MuleSoft.
00:09:31.180 --> 00:09:35.800
So that is called MulePoint or MuleStudio basically we call that.
00:09:36.240 --> 00:09:39.900
And for MuleSoft, it's basically, initially,
00:09:41.040 --> 00:09:43.680
it's a kind of open source implementation tool,
00:09:44.100 --> 00:09:46.100
but later on Salesforce has taken that up.
00:09:46.920 --> 00:09:49.880
Like initially Java is an open source tool, but later on,
00:09:49.880 --> 00:09:52.780
Oracle takes that right. So similarly,
00:09:53.320 --> 00:09:55.600
MuleSoft is started its journey as an open source tool.
00:09:56.000 --> 00:09:57.980
And later on Salesforce has took that.
00:09:58.140 --> 00:10:03.040
And initially we do have any point studio as integrated development
00:10:03.040 --> 00:10:06.660
environment. We call that ITC, right? So initially we have that,
00:10:06.980 --> 00:10:10.080
but later on when Salesforce took the MuleSoft,
00:10:10.300 --> 00:10:13.320
it transformed its journey to any point studio platform.
00:10:13.740 --> 00:10:17.660
So this is a kind of, if you are aware of Azure,
00:10:17.660 --> 00:10:21.280
Microsoft Azure or AWS, are you aware of them?
00:10:21.920 --> 00:10:24.280
So basically we do have a portal, right?
00:10:24.540 --> 00:10:26.880
Where people go on,
00:10:27.240 --> 00:10:31.500
he just spin up the virtual machine with the help of his credentials and back
00:10:32.120 --> 00:10:36.060
things get delivered to him with the help of a web interface.
00:10:36.400 --> 00:10:40.460
So that's what this any point studio is. Like to sum up this,
00:10:40.600 --> 00:10:45.440
basically any point studio provides you much more similar to what
00:10:45.440 --> 00:10:49.300
Azure provides you, but it is on Microsoft Azure, but this is on,
00:10:49.300 --> 00:10:52.840
you'll see that stuff pretty much depends what we have.
00:10:53.420 --> 00:10:57.640
So any point studio itself is a development environment where developer
00:10:57.640 --> 00:11:01.400
comes on, he creates connectors, or he creates,
00:11:03.840 --> 00:11:06.100
like the pallets or canvas,
00:11:06.100 --> 00:11:10.180
and he creates these mule pallets and integrate
00:11:12.100 --> 00:11:15.420
implementations with the help of any point studio. I'll be, you know,
00:11:15.420 --> 00:11:20.080
walking through, walking you through this any point studio in later on sessions,
00:11:20.120 --> 00:11:26.080
but that is kind of a brief introduction about that. And yeah.
00:11:26.860 --> 00:11:29.820
And how exactly it works basically, MuleSoft.
00:11:30.020 --> 00:11:34.640
So when we have different developers or let's say,
00:11:35.000 --> 00:11:38.680
you're working on such system where you want to deliver your compute
00:11:38.680 --> 00:11:40.600
capabilities in terms of APIs,
00:11:40.980 --> 00:11:45.160
let's say you are having that specific use case and you want it to have
00:11:45.160 --> 00:11:49.580
great limits for your API so that you want it to deliver, let's say,
00:11:49.660 --> 00:11:54.540
you want for your clients such that the clients are entitled to hit this
00:11:54.540 --> 00:11:56.660
API only 2,500 times per day.
00:11:56.900 --> 00:12:01.760
So you want to have this all complex mechanisms built on top of your
00:12:01.760 --> 00:12:05.640
application so that you don't want to maintain that maintain these,
00:12:05.640 --> 00:12:10.240
you know, custom integrations and all these examples that I provided,
00:12:10.240 --> 00:12:13.180
right? So basically you wanted to have great limit implementations,
00:12:13.180 --> 00:12:19.000
or you wanted to have a different API keys where you want to onboard
00:12:19.000 --> 00:12:21.040
different, different users on a single tenant.
00:12:21.420 --> 00:12:25.560
So that is one of the use case where you want to integrate MuleSoft so
00:12:25.560 --> 00:12:30.060
that you'll be delivering a single platform to different users so that you
00:12:30.060 --> 00:12:32.820
can build out of them or you can, you know,
00:12:33.020 --> 00:12:37.780
scale things much more easily without any much headache or
00:12:37.780 --> 00:12:39.100
scaling and other aspects.
00:12:39.280 --> 00:12:42.120
So MuleSoft takes care of all those things,
00:12:42.120 --> 00:12:44.200
which are built on top of API implementations.
00:12:45.200 --> 00:12:48.480
So that's how MuleSoft sits in whole ecosystem.
00:12:49.360 --> 00:12:50.880
So you have any questions till now?
00:12:52.760 --> 00:12:59.160
So let's go our discussion to MuleSoft Anypoint as I've already told you.
00:12:59.560 --> 00:13:04.740
So this MuleSoft Anypoint platform is like a single solution where you
00:13:04.740 --> 00:13:08.160
can deliver things within a web application.
00:13:08.680 --> 00:13:09.160
That's all.
00:13:09.200 --> 00:13:10.440
You don't need to install anything.
00:13:10.440 --> 00:13:11.300
You don't need to have.
00:13:11.300 --> 00:13:16.640
So I told it for MulePoint Studio, it's an IDE and you need to have all
00:13:16.640 --> 00:13:19.940
the setup already done in your local environment.
00:13:20.300 --> 00:13:22.880
So you need to have Java Virtual Machine installed.
00:13:23.180 --> 00:13:26.960
You need to have Java Development Kit installed and you need to have at
00:13:26.960 --> 00:13:32.760
least 10 gigs of RAM inside your machine and you need to have at
00:13:32.760 --> 00:13:34.980
least 500 GB of hard disk installed in your machine.
00:13:35.220 --> 00:13:39.200
So these are like prerequisites that you want to run MuleStudio,
00:13:39.200 --> 00:13:44.400
but that would be difficult for an administrator who doesn't want to
00:13:44.400 --> 00:13:47.100
develop things, but he wants to have control over things.
00:13:47.780 --> 00:13:51.560
So that's where this MuleSoft Anypoint comes into picture.
00:13:52.100 --> 00:13:57.280
So it gives us, I mean, it gives a person, an administrator or a
00:13:57.800 --> 00:13:59.040
development person as well.
00:13:59.280 --> 00:14:04.200
When I say development person, a developer or integrating person or,
00:14:05.120 --> 00:14:06.640
you know, APS specialist.
00:14:06.640 --> 00:14:11.860
When I say APS specialist, a person who controls the deployments of
00:14:11.860 --> 00:14:18.520
APIs or a person who implements user onboarding or those aspects of
00:14:19.360 --> 00:14:23.920
the MuleSoft implementation, this will be the, I mean, this Anypoint
00:14:23.920 --> 00:14:27.680
will be like a go-to solution for them instead of having all the
00:14:27.680 --> 00:14:29.000
local setup done and all.
00:14:29.280 --> 00:14:31.580
So this will be an easy solution.
00:14:32.300 --> 00:14:38.980
And it provides you, like, let's say you have this all packaged
00:14:38.980 --> 00:14:42.720
MuleSoft application and you wanted to kind of run this specific
00:14:42.720 --> 00:14:46.000
packaged MuleSoft application, which is delivered by your developers
00:14:46.000 --> 00:14:47.880
and you wanted to test it out.
00:14:48.120 --> 00:14:54.160
So let's say you have different, different teams inside your project
00:14:54.160 --> 00:14:57.420
and you have developers team, you have your testers team, and
00:14:57.420 --> 00:14:59.120
you have your deployment team.
00:14:59.120 --> 00:15:04.660
So you wanted to have this difference of responsibilities within
00:15:04.660 --> 00:15:06.000
each and every person.
00:15:06.960 --> 00:15:11.100
So, but let's say developers developed an implementation or a
00:15:11.100 --> 00:15:13.980
MuleSoft application or an application code.
00:15:14.660 --> 00:15:19.100
And they, you know, build that code and exported that code as a
00:15:19.100 --> 00:15:20.140
part of JAR Artifact.
00:15:20.400 --> 00:15:24.440
And you wanted to gather this specific JAR Artifact and provide
00:15:24.440 --> 00:15:27.720
this JAR Artifact to the testers team where you want to test
00:15:27.720 --> 00:15:28.540
the applications.
00:15:28.540 --> 00:15:33.560
So they need, they don't need to have any implementation details
00:15:33.560 --> 00:15:34.820
where developers worked on.
00:15:35.160 --> 00:15:42.580
So it's like a difference of implementations or a difference
00:15:42.580 --> 00:15:49.240
between, you wanted to have varied responsibilities within
00:15:49.240 --> 00:15:52.000
each and every team, but you wanted to keep them integrated.
00:15:53.000 --> 00:15:56.180
So on those scenarios, MuleSoft, any point comes into picture.
00:15:56.700 --> 00:15:57.480
So you got, right.
00:15:57.480 --> 00:16:00.860
So basically different, different implementation teams,
00:16:01.180 --> 00:16:03.400
but they wanted to work on the same project.
00:16:04.260 --> 00:16:08.760
Parallelly in those scenarios, MuleSoft, any point team, I mean
00:16:08.760 --> 00:16:12.740
MuleSoft, any point application comes into picture, but we don't
00:16:12.740 --> 00:16:15.960
have that, you know, luxury with any point studio.
00:16:16.400 --> 00:16:19.440
Any point studio is like a local runtime environment, you
00:16:19.440 --> 00:16:23.360
can say, where things will be easy for local development and
00:16:23.360 --> 00:16:26.980
local testing, but that's not the way the current organizations
00:16:26.980 --> 00:16:28.780
or current businesses work on.
00:16:29.140 --> 00:16:33.120
It's like current businesses should have, things should be
00:16:33.120 --> 00:16:34.700
going on to production within it.
00:16:35.520 --> 00:16:38.220
Once it is developed and once it is tested, we don't want to
00:16:38.980 --> 00:16:40.440
have big bank releases, right?
00:16:41.400 --> 00:16:42.300
So that is the thing.
00:16:42.400 --> 00:16:44.280
And we also have this unit testing framework
00:16:44.280 --> 00:16:46.120
inside MuleSoft, any point.
00:16:46.540 --> 00:16:47.500
So I'll be showing you all of this.
00:16:48.720 --> 00:16:52.980
Feel free to stop me if you think anything is lagging or,
00:16:53.240 --> 00:16:56.060
you know, you don't want to understand.
00:16:56.060 --> 00:17:01.160
So when we want to navigate quickly between any point platform,
00:17:01.300 --> 00:17:03.560
so we have this couple of things here.
00:17:03.700 --> 00:17:05.000
So you can see, right?
00:17:05.100 --> 00:17:06.200
Any point code builder.
00:17:06.440 --> 00:17:10.680
So it's basically, it's a new feature right now inside any point
00:17:10.680 --> 00:17:12.380
platform, it's on beta stage right now.
00:17:13.340 --> 00:17:16.960
So I don't think it's better to discuss this right now, but
00:17:16.960 --> 00:17:18.320
I'll give you a brief idea over this.
00:17:18.440 --> 00:17:21.060
So right now, as I have told you, right?
00:17:21.280 --> 00:17:25.700
So this any point studio, it has a couple of, not couple, it has
00:17:25.700 --> 00:17:31.380
a lot of downsides right now, and it has a lot of cons
00:17:31.380 --> 00:17:33.720
rather than any point platform.
00:17:33.960 --> 00:17:38.960
So this any point code builder, it's like an integration tool that is being
00:17:38.960 --> 00:17:42.100
developed inside the any point platform itself as a separate
00:17:43.600 --> 00:17:45.100
implementation or separate.
00:17:46.960 --> 00:17:51.580
Right now, if you see here, it's the API manager itself has a different route.
00:17:51.760 --> 00:17:54.740
So whatever you are doing inside this API manager,
00:17:55.220 --> 00:17:59.100
it's on the same any point platform, but the look and feel will be
00:17:59.100 --> 00:18:01.360
same and the single sign on will be same.
00:18:01.420 --> 00:18:04.840
You don't need to have different, different credentials to work on and all.
00:18:05.840 --> 00:18:10.320
So similarly, the any point code builder is like tight integration
00:18:10.320 --> 00:18:11.460
with the any point platform.
00:18:11.620 --> 00:18:16.080
You can say where we don't need to use any point studio anymore.
00:18:16.420 --> 00:18:20.660
Developer can do workflows, designing and workflows,
00:18:20.660 --> 00:18:26.260
implementations or workflows, testing and giving mocking requests
00:18:26.260 --> 00:18:29.620
to the workflow and all with the help of just code builder.
00:18:29.660 --> 00:18:32.720
We don't need to learn about any point studio anymore.
00:18:33.180 --> 00:18:36.680
Once this is, I mean, the development of code builder is completed
00:18:36.680 --> 00:18:39.360
and people are good to use this code builder.
00:18:39.700 --> 00:18:41.360
So yeah, this is the API manager.
00:18:42.660 --> 00:18:45.980
So you could able to see which screen right now.
00:18:45.980 --> 00:18:47.240
Good. Yeah.
00:18:47.700 --> 00:18:53.060
So this API manager, it's like go to solution where you want to create
00:18:53.060 --> 00:18:57.120
an API and deploy that API for deployment.
00:18:57.440 --> 00:19:07.000
We have this any point exchange or any point runtime manager
00:19:07.000 --> 00:19:09.460
where we'll be deploying our APIs.
00:19:09.880 --> 00:19:13.440
But when it comes to designing an API, so let's say I have
00:19:13.440 --> 00:19:21.140
already created, you can see the metrics that the specific API
00:19:21.140 --> 00:19:22.720
that is being deployed over here.
00:19:23.180 --> 00:19:26.720
So let's say you wanted to see a specific implementations.
00:19:26.940 --> 00:19:34.480
Let's say so this any point API platform like this API
00:19:34.480 --> 00:19:40.320
administrator provides us tools to choose the runtime environment.
00:19:40.520 --> 00:19:42.280
Here we are using Mule 4 as our runtime.
00:19:42.280 --> 00:19:46.280
So I have developed this specific product API with the help of Mule 4.
00:19:47.120 --> 00:19:50.820
I'll show that how we'll be doing that inside the any point studio
00:19:50.820 --> 00:19:54.840
in later classes and the version that we are using
00:19:55.440 --> 00:20:00.880
and the instance that we deployed the specific API
00:20:00.880 --> 00:20:05.000
and what's the error that we got and how many test requests
00:20:05.000 --> 00:20:06.120
that it is being hit.
00:20:07.060 --> 00:20:10.220
So right now it's like no one has access to this.
00:20:10.220 --> 00:20:12.680
Let's say I push this into production environment
00:20:12.680 --> 00:20:16.740
and things goes wrong in few scenarios.
00:20:17.300 --> 00:20:23.620
So in those scenarios we'll be having metrics and policies
00:20:23.620 --> 00:20:27.540
that we want to enforce inside this specific implementation.
00:20:27.900 --> 00:20:32.520
So that's how this API manager works.
00:20:32.740 --> 00:20:35.920
We'll be going through these in later like the detailed
00:20:35.920 --> 00:20:39.500
things in later classes and when it comes to API governance.
00:20:39.500 --> 00:20:44.160
So this API governance basically provides us a couple of policies
00:20:44.160 --> 00:20:46.100
where we want to define these policies.
00:20:46.220 --> 00:20:49.860
Let's say you're working on some European based projects
00:20:49.860 --> 00:20:53.780
and in European based projects you will be having a strict
00:20:53.780 --> 00:20:57.800
data management policies where you wanted to keep specific
00:20:59.680 --> 00:21:03.820
customers data for only a specified period of time
00:21:03.820 --> 00:21:07.140
and you wanted to erase that completely the hard erasing
00:21:07.140 --> 00:21:09.300
you can say not the soft erasing and all.
00:21:09.300 --> 00:21:12.480
So you have to make your platform or application
00:21:12.480 --> 00:21:15.180
that is being developed on top of this platform
00:21:15.180 --> 00:21:19.780
complying to all these policies that is being pushed
00:21:19.780 --> 00:21:22.920
by government organizations or agencies.
00:21:23.000 --> 00:21:24.580
We'll be using this API governance.
00:21:24.580 --> 00:21:28.800
So basically it's a kind of policy management platform
00:21:28.800 --> 00:21:31.840
you can say in a simple word so that you can create
00:21:31.840 --> 00:21:36.100
policies and enforce those policies on platform
00:21:36.100 --> 00:21:37.980
that you are working on basically.
00:21:37.980 --> 00:21:39.740
So that is the API governance.
00:21:40.340 --> 00:21:43.560
So basically this will be used for matured projects
00:21:44.380 --> 00:21:47.160
not for sandbox environment projects or not for
00:21:47.160 --> 00:21:49.760
development projects or not for testing environments.
00:21:50.420 --> 00:21:52.420
Basically it's for already deployed projects
00:21:52.420 --> 00:21:56.000
and they are in a production load production like systems
00:21:56.000 --> 00:22:01.680
and the people who are using these projects or platform
00:22:01.680 --> 00:22:05.040
is also matters for this specific API governance.
00:22:05.340 --> 00:22:07.460
I mean if you want to use this API governance
00:22:07.460 --> 00:22:11.300
then people from where they vote are using this
00:22:12.120 --> 00:22:14.620
application also matters basically for this.
00:22:14.720 --> 00:22:17.880
So it's like more mature for more mature projects
00:22:17.880 --> 00:22:20.680
and this runtime manager as I've told you right.
00:22:20.920 --> 00:22:23.840
So let's say you have developed your application
00:22:23.840 --> 00:22:26.560
new application we call applications that are
00:22:26.560 --> 00:22:28.800
developed inside new soft as new applications.
00:22:29.860 --> 00:22:33.300
So let's say you you means your developers worked on
00:22:34.880 --> 00:22:39.040
new soft and they created a separate artifact
00:22:39.040 --> 00:22:41.600
which is a result of the development effort
00:22:41.600 --> 00:22:42.300
that they have put.
00:22:42.580 --> 00:22:44.260
So you wanted to deploy this artifact.
00:22:44.760 --> 00:22:46.920
So you in the sense a person who manages
00:22:46.920 --> 00:22:48.660
the instance of the application.
00:22:49.180 --> 00:22:52.640
So basically the job roles inside this new soft
00:22:52.640 --> 00:22:54.800
endpoint I mean in this new soft ecosystem
00:22:54.800 --> 00:22:57.780
they revolve around this is kind of bit of topic
00:22:57.780 --> 00:23:00.780
but if you wanted to understand like how things
00:23:00.780 --> 00:23:03.920
goes on in huge organizations where the separation
00:23:03.920 --> 00:23:05.360
of concern is present right.
00:23:05.520 --> 00:23:09.060
So developers works on only API implementations
00:23:09.060 --> 00:23:11.320
and testing team will be working on only
00:23:11.320 --> 00:23:14.700
the testing teams and deployment or set
00:23:14.700 --> 00:23:17.880
level to engineers they work mostly on creating
00:23:17.880 --> 00:23:19.920
continuous integrations and continuous deployments
00:23:19.920 --> 00:23:23.360
for the new applications and making sure that
00:23:23.360 --> 00:23:25.800
the uptime metrics are passing for them.
00:23:25.800 --> 00:23:27.620
So basically this center metric
00:23:27.620 --> 00:23:30.680
and the manager is mostly used by development guys
00:23:31.820 --> 00:23:34.420
or what we call set label team engineers.
00:23:34.960 --> 00:23:39.980
So those people mostly use this runtime manager.
00:23:40.160 --> 00:23:42.060
So we have this couple of pains here.
00:23:42.320 --> 00:23:45.840
So basically each and every pain responsible
00:23:45.840 --> 00:23:48.340
for its own deployment aspect.
00:23:48.380 --> 00:23:52.340
So let's say I so you have this test application
00:23:52.340 --> 00:23:54.840
and it is deployed under cloud hub.
00:23:54.840 --> 00:23:57.880
So basically cloud hub is a one stop solution
00:23:57.880 --> 00:24:00.500
for your deployment efforts inside
00:24:02.940 --> 00:24:03.860
any platform.
00:24:03.980 --> 00:24:06.860
So it's like we have this separate session
00:24:06.860 --> 00:24:09.700
to talk about how to deploy things inside cloud hub
00:24:09.700 --> 00:24:12.560
but it's a kind of target cloud you can say
00:24:12.560 --> 00:24:14.480
so that you can just deploy this
00:24:14.480 --> 00:24:16.260
and share the URL with the others
00:24:16.260 --> 00:24:18.720
so that any person who is on cloud
00:24:18.720 --> 00:24:21.180
can just utilize this I mean any person
00:24:21.180 --> 00:24:23.420
who is on globe you just utilize that
00:24:23.420 --> 00:24:26.560
and consume this API with the help of credentials
00:24:26.560 --> 00:24:28.680
that you have provided and the URL that you have provided.
00:24:29.740 --> 00:24:32.400
So basically the deployment model
00:24:32.400 --> 00:24:34.800
I mean we can also define the deployment model here.
00:24:34.960 --> 00:24:36.960
So we have this couple of deployment models
00:24:36.960 --> 00:24:39.000
like a cloud hub deployment model.
00:24:39.000 --> 00:24:40.560
It is one kind of deployment model
00:24:40.560 --> 00:24:44.340
or let's say you have your own servers
00:24:44.340 --> 00:24:45.900
like the on-premise servers
00:24:45.900 --> 00:24:49.500
and you wanted to maintain all your networking related
00:24:49.500 --> 00:24:52.540
concepts over there or policies over there
00:24:52.540 --> 00:24:56.100
the network policies and compute resources
00:24:56.100 --> 00:24:58.300
that you have inside your on-premise.
00:24:58.360 --> 00:25:00.580
So basically you wanted to have your own
00:25:00.580 --> 00:25:03.700
user managed platform
00:25:03.700 --> 00:25:05.880
but you wanted to integrate this on-premise
00:25:05.880 --> 00:25:06.820
to the runtime manager.
00:25:07.080 --> 00:25:08.840
So let's say you have five or six APS
00:25:08.840 --> 00:25:11.240
that is being delivered to your clients
00:25:11.880 --> 00:25:14.980
and you don't want to deploy all these five solutions
00:25:14.980 --> 00:25:17.240
but you wanted to manage all these five solutions
00:25:17.240 --> 00:25:20.760
inside any one platform so that you have a holistic
00:25:20.760 --> 00:25:23.320
you know I mean just you wanted to use
00:25:24.080 --> 00:25:27.380
for metrics purpose this Anypoint platform
00:25:27.380 --> 00:25:30.020
but for deployment purpose and for storage purpose
00:25:30.020 --> 00:25:33.720
you wanted to use your on-premise environments.
00:25:33.720 --> 00:25:37.760
You can just like integrate this any deployment model
00:25:37.760 --> 00:25:39.760
and connect your on-premise servers
00:25:39.760 --> 00:25:41.620
to this Anypoint platform
00:25:41.620 --> 00:25:43.620
and you can just utilize that.
00:25:43.880 --> 00:25:44.860
So you got my point right.
00:25:44.960 --> 00:25:47.220
So you can just grab the things
00:25:47.220 --> 00:25:48.600
that are being deployed in Open
00:25:49.560 --> 00:25:51.480
like your on-premise servers and just
00:25:52.140 --> 00:25:53.900
it's kind of lift and shift mechanism
00:25:53.900 --> 00:25:56.880
you wanted to manage everything under a single head.
00:25:57.340 --> 00:25:58.760
So that's how it works
00:25:58.760 --> 00:26:02.060
and you also have this flex gateways basically
00:26:02.060 --> 00:26:03.800
this flex gateways are like
00:26:05.340 --> 00:26:09.600
let's say you have your application deployed
00:26:09.600 --> 00:26:11.640
inside this cloud hub
00:26:11.640 --> 00:26:16.160
and you don't want to provide your URL
00:26:16.160 --> 00:26:18.140
to the end users.
00:26:18.140 --> 00:26:20.460
So let's say you're having a price model
00:26:21.060 --> 00:26:25.440
let's say you wanted to serve this specific APA
00:26:25.440 --> 00:26:28.400
for only those clients who have subs subscribed
00:26:28.400 --> 00:26:30.280
for your subscription
00:26:30.280 --> 00:26:34.520
and you wanted to have more secure way
00:26:34.520 --> 00:26:37.120
of providing this I mean delivering this API.
00:26:37.320 --> 00:26:38.480
So in those scenarios
00:26:38.480 --> 00:26:40.340
you will be deploying a single tenant
00:26:40.340 --> 00:26:43.720
and just separating each and every user
00:26:43.720 --> 00:26:44.540
inside this tenant.
00:26:44.780 --> 00:26:46.980
So you don't want to have a single URL
00:26:46.980 --> 00:26:49.820
and just distribute this URL to each and everyone
00:26:49.820 --> 00:26:52.700
because that provides security to the application.
00:26:52.700 --> 00:26:55.300
So you wanted to have separation of concern
00:26:55.300 --> 00:26:58.160
in terms of gateways
00:26:58.160 --> 00:27:02.600
or the deployments that you have done
00:27:02.600 --> 00:27:04.300
so that you will be having
00:27:04.300 --> 00:27:06.720
I mean you just deploy a specific gateway
00:27:06.720 --> 00:27:10.140
and let's say you have deployed it
00:27:10.140 --> 00:27:11.760
in a specific Kubernetes cluster
00:27:12.860 --> 00:27:15.180
and for each and every customer
00:27:15.180 --> 00:27:18.220
you will be creating a new endpoint
00:27:18.220 --> 00:27:19.620
so that you'll be delivering
00:27:19.620 --> 00:27:21.800
this only new endpoint for that customer
00:27:21.800 --> 00:27:24.260
and whenever let's say the customer
00:27:24.260 --> 00:27:26.200
don't want to continue his subscription
00:27:26.200 --> 00:27:29.620
you'll be having like granular control
00:27:29.620 --> 00:27:32.640
over what this customer can do
00:27:33.420 --> 00:27:34.560
inside your application.
00:27:34.580 --> 00:27:36.940
So basically it's like kind of limitation
00:27:36.940 --> 00:27:40.180
of providing limitations for deliveries
00:27:40.180 --> 00:27:42.320
for the API access basically
00:27:42.320 --> 00:27:44.060
you don't want to provide access
00:27:44.060 --> 00:27:45.720
I mean you want to stop the access
00:27:45.720 --> 00:27:48.020
for those API endpoints
00:27:48.020 --> 00:27:49.620
which you have created.
00:27:50.060 --> 00:27:53.500
So basically we'll be using these gateways
00:27:54.740 --> 00:27:56.700
or what we call the flexible gateways
00:27:56.700 --> 00:28:01.200
basically these are managed by the flex gateways
00:28:01.200 --> 00:28:04.480
this is a new concept in runtime manager
00:28:04.480 --> 00:28:06.300
which is in any point platform.
00:28:06.900 --> 00:28:09.820
So that's one of the use case what we call
00:28:09.820 --> 00:28:11.080
and allows and all
00:28:11.080 --> 00:28:12.340
so these are for production systems
00:28:12.860 --> 00:28:16.020
let's say you have these servers basically
00:28:16.020 --> 00:28:17.800
I did not explain this basically
00:28:17.800 --> 00:28:19.120
so you have these servers
00:28:19.120 --> 00:28:20.680
let's say you wanted to create a server
00:28:20.680 --> 00:28:23.340
and you wanted to provision this server
00:28:23.340 --> 00:28:24.760
let's say five gigs of RAM
00:28:24.760 --> 00:28:27.840
and there is a lot of traffic
00:28:27.840 --> 00:28:30.840
that is being provided to your API
00:28:30.840 --> 00:28:36.360
in huge like top-notch conditions
00:28:36.360 --> 00:28:37.940
let's say there is a sale going on
00:28:37.940 --> 00:28:38.720
for your application
00:28:38.720 --> 00:28:39.900
and there are lots of hits
00:28:39.900 --> 00:28:41.220
for your application
00:28:41.220 --> 00:28:45.000
you do not sign up for any auto scaling
00:28:45.000 --> 00:28:46.380
implementations for your servers
00:28:46.380 --> 00:28:47.680
so in those scenarios
00:28:47.680 --> 00:28:51.000
you don't want to give 500x responses
00:28:51.000 --> 00:28:51.580
for your clients.
00:28:51.960 --> 00:28:54.860
So that would be having bad implications
00:28:54.860 --> 00:28:57.800
or bad user experience for the clients
00:28:57.800 --> 00:28:59.500
so that you can just sign up
00:28:59.500 --> 00:29:00.020
for these alerts
00:29:00.020 --> 00:29:02.420
and these alerts basically provides you
00:29:02.420 --> 00:29:05.140
whenever there are
00:29:06.320 --> 00:29:08.960
I mean the actual threshold
00:29:08.960 --> 00:29:10.480
is being met for your servers
00:29:10.480 --> 00:29:12.700
then you will be having this alert
00:29:13.360 --> 00:29:16.420
to a specific implementation aspect
00:29:16.420 --> 00:29:20.300
let's say you have provided your mobile phone
00:29:20.300 --> 00:29:21.200
as one of the alerts
00:29:21.200 --> 00:29:22.360
or having a call
00:29:22.360 --> 00:29:23.400
or having an SMS
00:29:23.400 --> 00:29:26.060
or having a Slack notification
00:29:26.060 --> 00:29:27.520
or email notification anything
00:29:27.520 --> 00:29:31.000
we do have lots of DHCP configurations as well
00:29:31.000 --> 00:29:34.560
so let's say you have your own organization's email
00:29:34.560 --> 00:29:36.640
you don't want to integrate that
00:29:36.640 --> 00:29:38.440
with the sales force
00:29:38.440 --> 00:29:41.700
because of any security reasons
00:29:41.700 --> 00:29:44.280
you do have a couple of DHCP integrations
00:29:44.280 --> 00:29:45.060
for this alert
00:29:45.060 --> 00:29:48.400
it's a kind of very flexible system
00:29:48.960 --> 00:29:51.680
when compared to other API systems
00:29:51.680 --> 00:29:53.060
like Google APG
00:29:53.060 --> 00:29:54.560
or those platforms
00:29:54.560 --> 00:29:55.720
which are like rivalries
00:29:55.720 --> 00:29:58.000
for a new soft implementations
00:29:58.000 --> 00:30:00.600
and these are VPCs
00:30:00.600 --> 00:30:02.080
these are like out of point
00:30:02.080 --> 00:30:03.000
for discussion right now
00:30:03.000 --> 00:30:05.300
these are like more granular
00:30:07.740 --> 00:30:09.440
virtual private cloud basically
00:30:09.440 --> 00:30:12.000
these will provide you more granular access
00:30:12.000 --> 00:30:15.000
over which applications are being deployed
00:30:15.000 --> 00:30:17.260
what is the mechanism of networking
00:30:17.260 --> 00:30:18.960
that is being utilized and all
00:30:18.960 --> 00:30:21.000
so I don't think it's much required
00:30:21.000 --> 00:30:23.300
but you know the load balancers right
00:30:23.300 --> 00:30:25.640
so basically a typical load balancer
00:30:25.640 --> 00:30:28.340
provides you a kind of load balancing
00:30:28.340 --> 00:30:29.380
between different instances
00:30:29.380 --> 00:30:31.440
let's say you have opted for
00:30:32.460 --> 00:30:33.880
horizontal auto scaling
00:30:33.880 --> 00:30:34.980
in those scenarios
00:30:34.980 --> 00:30:39.100
new servers will be added to your deployment
00:30:39.100 --> 00:30:41.840
and you wanted to auto scale them
00:30:41.840 --> 00:30:44.880
but you don't have any single point of contact
00:30:44.880 --> 00:30:46.380
let's say each and every server
00:30:46.380 --> 00:30:48.960
has its own IP address associated with that
00:30:48.960 --> 00:30:51.460
but we don't want to provide each and every server
00:30:51.460 --> 00:30:52.600
to different different users
00:30:52.600 --> 00:30:54.320
that would be a different task
00:30:54.320 --> 00:30:55.560
and we want to
00:30:55.560 --> 00:30:57.180
I mean that would become very difficult
00:30:57.180 --> 00:30:59.360
to maintain in long run as well
00:30:59.360 --> 00:31:01.300
let's say you have 50 or 60 servers
00:31:01.300 --> 00:31:02.360
and you don't want to manage
00:31:02.360 --> 00:31:03.700
all of them manually
00:31:03.700 --> 00:31:06.160
then load balancers comes into picture
00:31:06.980 --> 00:31:08.840
so that is the thing
00:31:08.840 --> 00:31:11.800
so it's a kind of whole overview
00:31:11.800 --> 00:31:13.340
on the runtime manager
00:31:15.960 --> 00:31:18.340
and do you have any questions still now
00:31:23.560 --> 00:31:25.860
and this is a visualizer
00:31:26.380 --> 00:31:31.480
visualizer is a kind of application platform
00:31:31.480 --> 00:31:33.300
where you want to visualize
00:31:33.300 --> 00:31:36.980
how your network aspects are implemented
00:31:36.980 --> 00:31:38.960
or let's say you have created a VPC
00:31:38.960 --> 00:31:40.180
and you have deployed
00:31:40.180 --> 00:31:42.380
or tens or tens number of servers
00:31:42.380 --> 00:31:43.580
let's say you have deployed around
00:31:43.580 --> 00:31:44.660
25 or 30 servers
00:31:44.660 --> 00:31:47.060
and you wanted to understand
00:31:47.780 --> 00:31:49.700
how these communication takes place
00:31:51.380 --> 00:31:53.380
what are the user facing servers
00:31:53.380 --> 00:31:55.300
and what are backend servers
00:31:55.300 --> 00:31:58.500
which are accessible for only for our
00:31:59.560 --> 00:32:01.700
people who are directly interacting
00:32:01.700 --> 00:32:05.100
with our VPN being connected
00:32:05.100 --> 00:32:06.960
to the organizations VPN
00:32:06.960 --> 00:32:09.820
so it provides us a kind of
00:32:09.820 --> 00:32:11.300
simplified dashboards
00:32:11.300 --> 00:32:13.320
where we wanted to integrate
00:32:13.320 --> 00:32:14.580
our specific applications
00:32:15.780 --> 00:32:17.780
and like management aspects
00:32:17.780 --> 00:32:20.100
basically this visualizer provides us
00:32:20.100 --> 00:32:22.360
and this monitoring tools
00:32:22.360 --> 00:32:23.880
so basically let's say
00:32:23.880 --> 00:32:26.080
you have deployed a specific application
00:32:26.080 --> 00:32:27.060
inside the MuleSoft
00:32:27.060 --> 00:32:29.540
and you wanted to monitor
00:32:29.540 --> 00:32:30.720
that specific implementation
00:32:30.720 --> 00:32:36.040
let's say we do have these metrics and alerts
00:32:36.640 --> 00:32:38.260
so let's say you have
00:32:38.260 --> 00:32:39.580
I mean you've been using
00:32:40.180 --> 00:32:41.920
here we have lots of servers
00:32:41.920 --> 00:32:43.400
as we have seen earlier
00:32:43.400 --> 00:32:46.440
we have these lots of servers over here
00:32:46.440 --> 00:32:47.860
if you want to add a server
00:32:47.860 --> 00:32:50.920
you have a different way
00:32:50.920 --> 00:32:52.480
to add a server basically
00:32:53.040 --> 00:32:55.540
we have Kubernetes server
00:32:55.540 --> 00:32:56.940
and we have OpenShift server
00:32:56.940 --> 00:32:58.060
we have Linux server
00:32:58.060 --> 00:32:59.960
and a lot more servers
00:32:59.960 --> 00:33:02.600
so let's say for your use cases
00:33:02.600 --> 00:33:03.940
for one of your application
00:33:03.940 --> 00:33:05.660
you will be going for Kubernetes clusters
00:33:05.660 --> 00:33:07.420
and for one of your applications
00:33:07.420 --> 00:33:08.860
the architecture itself
00:33:08.860 --> 00:33:11.000
supports Linux-based implementations
00:33:11.000 --> 00:33:13.800
so like Kubernetes has its own
00:33:15.180 --> 00:33:16.720
matrix management system
00:33:16.720 --> 00:33:17.240
you will be using
00:33:19.880 --> 00:33:21.700
like Prometheus for Kubernetes
00:33:21.700 --> 00:33:23.040
and for Linux-based systems
00:33:23.040 --> 00:33:23.560
you will be using
00:33:25.640 --> 00:33:27.980
like Elk Stack all those things
00:33:27.980 --> 00:33:29.680
so but these are like
00:33:29.680 --> 00:33:30.500
different platforms
00:33:30.500 --> 00:33:33.020
and you have for Kubernetes server
00:33:33.020 --> 00:33:34.580
you have to want to go
00:33:34.580 --> 00:33:36.760
with Prometheus dashboards
00:33:36.760 --> 00:33:38.420
and for Linux servers
00:33:38.420 --> 00:33:40.080
you want to go for different dashboards
00:33:40.080 --> 00:33:41.800
and managing all of them
00:33:41.800 --> 00:33:42.800
in different areas
00:33:42.800 --> 00:33:45.420
becomes like lots of tiresome
00:33:45.420 --> 00:33:46.400
to management right
00:33:46.400 --> 00:33:47.400
so that's where
00:33:47.400 --> 00:33:49.040
this built-in dashboard comes into picture
00:33:49.040 --> 00:33:51.680
so it's like we wanted to have
00:33:53.200 --> 00:33:55.000
our own tailored dashboards
00:33:55.000 --> 00:33:56.160
in those scenarios
00:33:56.160 --> 00:33:58.080
we'll be creating these dashboards
00:33:58.080 --> 00:34:00.000
we'll be providing the metrics
00:34:00.000 --> 00:34:01.560
what metrics that we want to provide
00:34:02.320 --> 00:34:03.340
so whenever let's say
00:34:03.340 --> 00:34:05.260
we have deployed a specific application
00:34:05.260 --> 00:34:07.200
like on next class
00:34:07.200 --> 00:34:08.260
like next sessions
00:34:08.260 --> 00:34:09.360
so we'll have this
00:34:10.940 --> 00:34:12.560
everything populated over here
00:34:12.560 --> 00:34:13.360
so that we can have
00:34:14.760 --> 00:34:15.780
hands-on over there
00:34:15.780 --> 00:34:17.520
so this is like
00:34:17.520 --> 00:34:20.060
where we wanted to monitor everything
00:34:20.060 --> 00:34:21.360
in a single dashboard
00:34:21.360 --> 00:34:23.880
in different different deployment aspects
00:34:23.880 --> 00:34:26.000
we'll be using this in that monitoring
00:34:26.640 --> 00:34:27.600
so this is this
00:34:28.960 --> 00:34:30.260
and access management
00:34:30.260 --> 00:34:33.140
like this is one of the most important thing
00:34:33.140 --> 00:34:35.440
in the whole Anypoint implementation
00:34:35.440 --> 00:34:38.420
so here let's say
00:34:38.420 --> 00:34:40.160
your organization wanted to go for
00:34:40.760 --> 00:34:41.960
Anypoint implementation
00:34:41.960 --> 00:34:43.860
and you have let's say
00:34:43.860 --> 00:34:45.120
around 10 applications
00:34:45.120 --> 00:34:46.460
that we wanted to integrate
00:34:46.460 --> 00:34:48.060
with the help of these APIs
00:34:48.720 --> 00:34:50.220
Anypoint address specifically
00:34:50.220 --> 00:34:52.460
and here you have like
00:34:52.460 --> 00:34:54.140
around 15 developers
00:34:54.140 --> 00:34:56.200
and five distinct team
00:34:56.200 --> 00:34:58.240
and two SRE team
00:34:58.240 --> 00:35:00.340
so each and every team
00:35:00.340 --> 00:35:02.580
has its own boundaries
00:35:02.580 --> 00:35:03.900
you can say
00:35:03.900 --> 00:35:04.900
where they wanted to
00:35:04.900 --> 00:35:06.920
like work with Anypoint platform
00:35:06.920 --> 00:35:07.800
for developers
00:35:07.800 --> 00:35:09.740
they mostly wanted to have
00:35:09.740 --> 00:35:13.580
access to specific implementation
00:35:13.580 --> 00:35:16.860
like only running the application
00:35:16.860 --> 00:35:18.060
in their local machine
00:35:18.060 --> 00:35:21.860
and just I mean having
00:35:21.860 --> 00:35:23.760
or debugging implementations over there
00:35:24.140 --> 00:35:25.640
so those aspects
00:35:25.640 --> 00:35:28.240
we wanted to kind of
00:35:28.240 --> 00:35:30.380
restrict their access over there itself
00:35:31.180 --> 00:35:34.580
but let's say for testing users
00:35:34.580 --> 00:35:35.340
we want to have
00:35:36.080 --> 00:35:37.800
different mock APS as well
00:35:37.800 --> 00:35:39.220
because testers mostly use
00:35:39.220 --> 00:35:41.080
on mock servers basically
00:35:41.080 --> 00:35:42.280
so in those scenarios
00:35:42.280 --> 00:35:44.880
we need to provide access to testers
00:35:44.880 --> 00:35:46.460
for there as well
00:35:46.460 --> 00:35:48.700
for deployment or SRE team
00:35:48.700 --> 00:35:50.140
or they need to have access
00:35:50.140 --> 00:35:51.420
over the physical resources
00:35:51.420 --> 00:35:53.200
or servers that we have deployed on
00:35:53.200 --> 00:35:54.060
different clouds
00:35:54.060 --> 00:35:55.200
let's say you wanted to integrate
00:35:55.200 --> 00:35:56.580
Microsoft Azure here
00:35:56.580 --> 00:35:58.420
so you will be having an API key
00:35:58.420 --> 00:36:00.220
that is being created by
00:36:00.220 --> 00:36:00.940
Microsoft Azure
00:36:00.940 --> 00:36:02.360
and you wanted to integrate
00:36:02.360 --> 00:36:04.880
Azure to Anypoint platform
00:36:04.880 --> 00:36:07.000
or Salesforce to Anypoint platform
00:36:07.000 --> 00:36:08.600
or Google APG platform
00:36:08.600 --> 00:36:09.620
to Anypoint platform
00:36:09.620 --> 00:36:11.240
so different different scenarios
00:36:11.240 --> 00:36:12.500
SRE team works on
00:36:12.500 --> 00:36:14.340
so they need to work
00:36:14.340 --> 00:36:15.440
on these specific scenarios
00:36:15.440 --> 00:36:16.740
so we do have
00:36:16.740 --> 00:36:18.420
role-based access controls here
00:36:18.420 --> 00:36:20.780
and we have broad roles
00:36:20.780 --> 00:36:24.420
and a specific organization
00:36:24.420 --> 00:36:26.700
can create their custom roles also
00:36:27.260 --> 00:36:28.860
to provide more granular
00:36:29.400 --> 00:36:31.040
roles and responsibilities
00:36:31.040 --> 00:36:32.180
to a single user
00:36:32.180 --> 00:36:34.700
so that they can just tailor their
00:36:36.200 --> 00:36:37.580
access needs
00:36:37.580 --> 00:36:40.260
so that it's not one size fits
00:36:40.260 --> 00:36:41.280
for everyone right
00:36:41.280 --> 00:36:43.480
so that's where this access management
00:36:43.480 --> 00:36:44.840
dashboard comes into picture
00:36:45.740 --> 00:36:47.220
and as I've told right
00:36:47.220 --> 00:36:48.180
for you let's say you wanted
00:36:48.180 --> 00:36:49.300
to integrate Salesforce
00:36:49.300 --> 00:36:51.120
with Anypoint platform
00:36:51.120 --> 00:36:54.160
so but how this is for
00:36:54.160 --> 00:36:55.400
I mean this Anypoint platform
00:36:55.400 --> 00:36:59.360
it knows that who are you
00:36:59.360 --> 00:37:01.260
you want to work with
00:37:01.260 --> 00:37:03.940
your organization's cloud account
00:37:03.940 --> 00:37:05.140
so you wanted to provide
00:37:05.940 --> 00:37:08.960
SSH key based authentication mechanism
00:37:08.960 --> 00:37:10.680
or API key based
00:37:10.680 --> 00:37:11.760
authentication mechanism
00:37:11.760 --> 00:37:12.860
so you wanted to store
00:37:12.860 --> 00:37:14.560
these keys somewhere else right
00:37:14.560 --> 00:37:15.680
so this secret manager
00:37:15.680 --> 00:37:17.900
provides you that luxury
00:37:17.900 --> 00:37:20.400
store all the SSH keys
00:37:20.400 --> 00:37:22.320
or SSL certificates
00:37:22.320 --> 00:37:24.180
or public keys
00:37:25.020 --> 00:37:27.660
or the API keys and all
00:37:27.660 --> 00:37:31.360
and we have this secret manager
00:37:31.360 --> 00:37:33.440
integrated with the
00:37:33.440 --> 00:37:35.200
Anypoint Studio as well
00:37:35.200 --> 00:37:36.700
so I've told like this
00:37:36.700 --> 00:37:37.220
Anypoint Studio
00:37:37.220 --> 00:37:39.240
it's like local development mechanism
00:37:39.240 --> 00:37:41.480
where developers will be working on
00:37:41.480 --> 00:37:44.300
a specific ID itself
00:37:44.300 --> 00:37:47.640
if you're aware of
00:37:47.640 --> 00:37:48.440
Java development
00:37:48.440 --> 00:37:51.040
we have these Spring Boot IDEs
00:37:51.040 --> 00:37:53.420
and these IDEs right
00:37:53.960 --> 00:37:54.760
what we call them
00:37:56.320 --> 00:37:59.480
file charm or these IDEs
00:37:59.480 --> 00:38:00.300
so they are like
00:38:00.300 --> 00:38:01.460
integrated development environments
00:38:01.460 --> 00:38:03.200
where you can do testing
00:38:03.200 --> 00:38:04.120
you can do debugging
00:38:04.120 --> 00:38:05.180
you can do development
00:38:05.180 --> 00:38:07.900
all it is at a single place
00:38:07.900 --> 00:38:09.660
so you wanted to integrate
00:38:09.660 --> 00:38:10.760
this Anypoint platform
00:38:10.760 --> 00:38:12.280
to those third-party
00:38:13.460 --> 00:38:15.140
applications or third-party APS
00:38:15.140 --> 00:38:15.800
you can just use
00:38:15.800 --> 00:38:16.800
this secret manager
00:38:17.600 --> 00:38:19.220
this secret manager has
00:38:19.220 --> 00:38:20.580
hooks associated with that
00:38:20.580 --> 00:38:22.000
so basically you can just create a hook
00:38:22.000 --> 00:38:23.500
and integrate that hook
00:38:23.500 --> 00:38:25.400
inside your local machines
00:38:25.400 --> 00:38:26.100
environment variable
00:38:26.100 --> 00:38:28.920
and you can just have access to those
00:38:30.000 --> 00:38:31.380
all third-party APS
00:38:31.380 --> 00:38:32.060
as well with the help
00:38:32.060 --> 00:38:32.980
of the secret manager
00:38:32.980 --> 00:38:35.760
so that is the overview
00:38:35.760 --> 00:38:37.660
of this Anypoint platform
00:38:37.660 --> 00:38:39.340
and you also have this
00:38:39.340 --> 00:38:40.680
exchange over here
00:38:40.680 --> 00:38:42.040
so exchange is like
00:38:43.620 --> 00:38:45.200
a public platform
00:38:45.800 --> 00:38:46.940
for a user
00:38:47.560 --> 00:38:49.280
are you aware of Docker?
00:38:49.820 --> 00:38:49.960
by any chance?
00:38:52.260 --> 00:38:52.380
Docker?
00:38:54.800 --> 00:38:56.120
so basically Docker
00:38:56.120 --> 00:38:58.140
is a kind of container
00:38:58.140 --> 00:39:00.520
and shipping platform basically
00:39:00.520 --> 00:39:02.040
let's say you develop the code
00:39:02.040 --> 00:39:03.820
inside your implemented
00:39:03.820 --> 00:39:05.340
I mean inside your local machine
00:39:05.340 --> 00:39:06.380
and you wanted to deploy
00:39:06.380 --> 00:39:07.580
this code somewhere else
00:39:07.580 --> 00:39:09.200
which is very different
00:39:09.200 --> 00:39:10.860
from your development environment
00:39:10.860 --> 00:39:14.020
so you'll be creating artifact
00:39:14.020 --> 00:39:15.600
and shipping those artifacts
00:39:15.600 --> 00:39:17.280
other areas
00:39:17.280 --> 00:39:18.580
where you want to deploy
00:39:18.580 --> 00:39:20.060
whether that may be Kubernetes cluster
00:39:20.060 --> 00:39:21.500
whether that may be a Linux
00:39:21.500 --> 00:39:22.960
a traditional Linux machine
00:39:22.960 --> 00:39:23.960
or any other things
00:39:24.800 --> 00:39:26.580
but you wanted to have
00:39:26.580 --> 00:39:30.800
I mean this jar artifact
00:39:30.800 --> 00:39:31.980
published somewhere
00:39:31.980 --> 00:39:33.380
and all users
00:39:33.380 --> 00:39:34.900
who wants to use this jar artifact
00:39:34.900 --> 00:39:36.780
just go to their marketplace
00:39:36.780 --> 00:39:39.900
and fetch that specific jar artifact
00:39:39.900 --> 00:39:42.040
and use for their own purposes
00:39:42.040 --> 00:39:44.280
so that's how the exchange works
00:39:44.280 --> 00:39:46.080
basically it's a kind of marketplace
00:39:46.080 --> 00:39:48.080
where you publish things
00:39:48.080 --> 00:39:49.720
and other people
00:39:49.720 --> 00:39:50.920
you know utilize those
00:39:51.520 --> 00:39:53.960
already pre-developed APIs
00:39:53.960 --> 00:39:55.320
or connectors or templates
00:39:55.880 --> 00:39:57.860
so that's how the exchange works
00:39:57.860 --> 00:39:59.740
we'll be going through this exchange
00:39:59.740 --> 00:40:02.920
and the design center is also
00:40:03.600 --> 00:40:04.680
we'll be going through
00:40:04.680 --> 00:40:05.660
raml implementations
00:40:05.660 --> 00:40:07.140
so that's where this design center
00:40:07.140 --> 00:40:08.120
comes into picture
00:40:08.840 --> 00:40:11.620
so that's the brief introduction
00:40:11.620 --> 00:40:12.820
about Thumbu software
00:40:15.420 --> 00:40:16.700
kind of
00:40:20.660 --> 00:40:22.820
so now you can stop me anywhere
00:40:22.820 --> 00:40:25.840
if you think things are not necessary
00:40:25.840 --> 00:40:28.260
or you don't want to have
00:40:38.080 --> 00:40:39.880
so these are these things
00:40:39.880 --> 00:40:40.680
that I've already covered
00:40:40.680 --> 00:40:42.200
basically this API manager
00:40:42.200 --> 00:40:45.460
you can just write our raml codes
00:40:45.460 --> 00:40:46.000
right away
00:40:46.000 --> 00:40:48.360
and we can just create our urls
00:40:48.360 --> 00:40:49.760
and test those urls as well
00:40:49.760 --> 00:40:50.800
with the help of API manager
00:40:50.800 --> 00:40:51.400
we'll be doing that
00:40:52.580 --> 00:40:54.120
in subsequent in subsequent hours
00:40:54.800 --> 00:40:55.900
and runtime manager
00:40:55.900 --> 00:40:57.080
it's like specifically
00:40:58.220 --> 00:40:59.820
let's say for cloud implementations
00:40:59.820 --> 00:41:00.420
which therefore
00:41:00.420 --> 00:41:01.800
azure cloud implementations
00:41:02.420 --> 00:41:04.300
we have a specific java-based
00:41:04.300 --> 00:41:05.000
runtime managers
00:41:05.720 --> 00:41:06.840
and for python-based
00:41:07.760 --> 00:41:08.780
API integrations
00:41:08.780 --> 00:41:10.700
we have python runtime managers
00:41:10.700 --> 00:41:12.420
so we wanted to run
00:41:12.420 --> 00:41:13.700
or we wanted to integrate
00:41:13.700 --> 00:41:16.460
a different runtime
00:41:17.680 --> 00:41:18.300
implementations
00:41:18.300 --> 00:41:19.660
let's say javascript
00:41:19.660 --> 00:41:21.760
or java or python-based codes
00:41:21.760 --> 00:41:23.380
basically we will be doing
00:41:23.380 --> 00:41:25.180
using that with the help of weaves
00:41:26.200 --> 00:41:27.340
weave is a kind of
00:41:27.340 --> 00:41:28.400
data transmission language
00:41:28.400 --> 00:41:30.560
that we will be using in newsoft
00:41:30.560 --> 00:41:31.900
we'll be discussing that later
00:41:31.900 --> 00:41:34.380
but yeah those weave
00:41:34.380 --> 00:41:35.940
implementations requires
00:41:35.940 --> 00:41:37.000
our runtime managers
00:41:37.000 --> 00:41:38.200
so that we can define
00:41:38.200 --> 00:41:39.640
what exactly the language
00:41:39.640 --> 00:41:40.180
that we're using
00:41:40.180 --> 00:41:41.720
and we can integrate that
00:41:41.720 --> 00:41:44.480
so it's like multimodal
00:41:44.480 --> 00:41:46.460
integrations inside the newsoft
00:41:48.320 --> 00:41:49.840
and mq
00:41:49.840 --> 00:41:52.720
so basically this mq is like
00:41:52.720 --> 00:41:54.460
if you know apache kafka
00:41:54.460 --> 00:41:56.580
or cloud native implementations
00:41:56.580 --> 00:41:58.380
like azure service bus
00:41:58.380 --> 00:42:00.680
or aws sns
00:42:00.680 --> 00:42:02.780
or those service bus mechanisms
00:42:02.780 --> 00:42:05.440
so basically these mqs
00:42:05.440 --> 00:42:06.660
or precision queues
00:42:06.660 --> 00:42:07.820
are basically like
00:42:08.660 --> 00:42:10.560
you will be publishing a message
00:42:12.200 --> 00:42:13.940
and our api which is
00:42:13.940 --> 00:42:15.420
subscribed to this message
00:42:15.420 --> 00:42:16.640
will be continuously
00:42:16.640 --> 00:42:18.080
pulling over the queue
00:42:18.080 --> 00:42:20.120
that you have subscribed
00:42:20.120 --> 00:42:22.380
and continuously listening over there
00:42:22.380 --> 00:42:23.880
so that we can integrate
00:42:26.360 --> 00:42:27.780
publisher and subscriber
00:42:27.780 --> 00:42:28.660
subscriber mechanism
00:42:28.660 --> 00:42:32.440
with the actual deliveries
00:42:32.440 --> 00:42:33.860
that we are going to work on
00:42:33.860 --> 00:42:34.740
so basically it's like
00:42:34.740 --> 00:42:36.420
kind of architectural decision
00:42:36.420 --> 00:42:37.620
that we have made
00:42:38.180 --> 00:42:39.860
for this publisher
00:42:39.860 --> 00:42:40.940
and subscriber mechanism
00:42:40.940 --> 00:42:43.080
and newsoft integration tool
00:42:43.080 --> 00:42:44.300
like this is a kind of
00:42:44.300 --> 00:42:45.700
newsoft integration tool itself
00:42:45.700 --> 00:42:47.400
we call that as messaging queue
00:42:48.100 --> 00:42:49.900
and it is tightly coupled
00:42:49.900 --> 00:42:50.720
with the newsoft
00:42:50.720 --> 00:42:53.100
so that it has its
00:42:53.100 --> 00:42:55.180
i mean this mq has its
00:42:55.180 --> 00:42:56.200
cloud native implementation
00:42:56.200 --> 00:42:57.320
of newsoft
00:42:57.320 --> 00:42:58.680
when i say cloud native
00:42:58.680 --> 00:42:59.980
you don't need to go
00:42:59.980 --> 00:43:01.700
to any other specific cloud
00:43:01.700 --> 00:43:03.560
or manage it somewhere else
00:43:03.560 --> 00:43:05.520
you have i mean you can just manage it
00:43:05.520 --> 00:43:07.180
under the same roof of any point
00:43:07.620 --> 00:43:09.780
so that is the thing and
00:43:11.520 --> 00:43:13.000
so yeah that's all about
00:43:13.000 --> 00:43:14.860
any point as we go through
00:43:14.860 --> 00:43:16.320
the practical things
00:43:16.320 --> 00:43:18.080
so you can just correlate
00:43:18.080 --> 00:43:19.380
things what i've told right now
00:43:20.060 --> 00:43:21.060
much more easily
00:43:21.780 --> 00:43:23.840
and like till till now
00:43:23.840 --> 00:43:25.920
i've told api api api
00:43:25.920 --> 00:43:27.000
a lot many times right
00:43:27.000 --> 00:43:29.360
so what is this specific api
00:43:29.360 --> 00:43:31.540
like how exactly this api
00:43:32.580 --> 00:43:33.380
comes into picture
00:43:33.380 --> 00:43:35.980
with respect to newsoft language
00:43:35.980 --> 00:43:39.020
so basically this new api
00:43:39.700 --> 00:43:41.180
do you have any like
00:43:42.960 --> 00:43:44.700
previous experience
00:43:44.700 --> 00:43:45.740
with the development or
00:43:46.480 --> 00:43:47.560
those scenarios
00:43:48.220 --> 00:43:49.780
or software development areas
00:43:50.620 --> 00:43:52.360
okay good okay
00:43:52.360 --> 00:43:55.420
so basically api is
00:43:55.420 --> 00:43:56.800
a kind of
00:43:56.800 --> 00:43:58.120
application programming interface
00:43:58.120 --> 00:44:01.360
we call and that is the
00:44:01.360 --> 00:44:02.720
short form of api
00:44:02.720 --> 00:44:05.140
so this api is specifically
00:44:06.020 --> 00:44:08.080
let's say you have three applications
00:44:08.080 --> 00:44:10.280
and these three applications
00:44:10.280 --> 00:44:11.080
need to communicate
00:44:11.080 --> 00:44:11.900
between themselves
00:44:12.580 --> 00:44:13.700
right now we are using
00:44:13.700 --> 00:44:16.300
english as our language of communication
00:44:17.820 --> 00:44:19.420
but our programs
00:44:19.420 --> 00:44:21.540
doesn't know about english right
00:44:21.540 --> 00:44:23.420
so they wanted to have
00:44:23.420 --> 00:44:24.800
a specific language
00:44:25.540 --> 00:44:26.340
where they wanted to
00:44:27.240 --> 00:44:28.440
communicate within each
00:44:28.440 --> 00:44:29.040
each and everything
00:44:29.780 --> 00:44:31.120
i mean with each other
00:44:31.120 --> 00:44:33.380
so that's what an api is
00:44:33.380 --> 00:44:36.740
so api has its own rules and
00:44:36.740 --> 00:44:39.060
like a hard-coded rules
00:44:39.060 --> 00:44:40.880
where if you wanted to
00:44:40.880 --> 00:44:42.240
get some information from
00:44:42.240 --> 00:44:44.280
a specific or deploying
00:44:44.280 --> 00:44:45.140
deployed application
00:44:45.140 --> 00:44:47.180
you want to query that first
00:44:47.180 --> 00:44:49.460
i want this information from you
00:44:49.460 --> 00:44:50.540
you want i mean you
00:44:50.540 --> 00:44:51.740
should give me this information
00:44:52.500 --> 00:44:53.980
that is the way you pass
00:44:53.980 --> 00:44:56.480
and it responds to you
00:44:56.480 --> 00:44:57.560
in a specific way
00:44:57.560 --> 00:44:58.880
as a json response
00:44:58.880 --> 00:45:00.940
json is javascript object notation
00:45:00.940 --> 00:45:01.980
so basically
00:45:06.120 --> 00:45:08.160
you have this request
00:45:10.760 --> 00:45:13.820
you have this response provided by api
00:45:15.700 --> 00:45:17.020
so this is the api which
00:45:18.040 --> 00:45:20.260
works between the request and response
00:45:22.180 --> 00:45:24.260
so how you provide request
00:45:25.080 --> 00:45:27.000
is one thing one question
00:45:27.000 --> 00:45:28.820
you have to have solution for that
00:45:28.820 --> 00:45:31.540
and how it provides the response
00:45:31.540 --> 00:45:33.060
we need to have information
00:45:33.060 --> 00:45:34.040
regarding that as well
00:45:34.040 --> 00:45:36.100
let's say it responded to you
00:45:36.100 --> 00:45:37.300
in arabic you can't
00:45:37.300 --> 00:45:38.340
able to understand right
00:45:38.340 --> 00:45:40.520
so there should be pre-understand
00:45:40.520 --> 00:45:42.980
convention between a caller
00:45:42.980 --> 00:45:44.420
and a provider
00:45:44.420 --> 00:45:46.000
so basically that
00:45:46.000 --> 00:45:47.620
pre-understanding convention
00:45:47.620 --> 00:45:49.220
is called an api
00:45:49.220 --> 00:45:50.820
basically you have a specific
00:45:50.820 --> 00:45:51.740
api specifications
00:45:51.740 --> 00:45:53.840
like i'll be providing you
00:45:53.840 --> 00:45:55.320
a request in specific form
00:45:55.320 --> 00:45:56.480
and you have to listen
00:45:56.480 --> 00:45:57.240
to this request
00:45:57.240 --> 00:45:58.380
and you have to provide
00:45:58.820 --> 00:46:00.900
response to me in this specific form
00:46:00.900 --> 00:46:02.980
so that is the way an api
00:46:05.140 --> 00:46:06.120
works basically
00:46:06.740 --> 00:46:09.360
so it consists of
00:46:09.360 --> 00:46:10.200
all these request
00:46:10.200 --> 00:46:11.860
and response based scenarios
00:46:12.680 --> 00:46:14.860
but how this i mean
00:46:14.860 --> 00:46:16.660
api sits with mulesoft basically
00:46:17.220 --> 00:46:19.400
as we have already discussed
00:46:19.400 --> 00:46:21.140
mulesoft is kind of
00:46:21.140 --> 00:46:22.060
integration platform
00:46:22.060 --> 00:46:23.020
first and foremost thing
00:46:23.020 --> 00:46:26.160
it provides us a way to integrate
00:46:26.160 --> 00:46:27.500
different different applications
00:46:27.500 --> 00:46:29.280
which are deployed across
00:46:29.280 --> 00:46:30.440
different environment
00:46:30.440 --> 00:46:33.100
and sometimes we don't even know
00:46:33.100 --> 00:46:35.760
where i mean it is kind of
00:46:35.760 --> 00:46:36.540
abstracted from us
00:46:37.260 --> 00:46:38.580
where a specific application
00:46:38.580 --> 00:46:39.160
is deployed
00:46:39.160 --> 00:46:40.620
but as long as you are
00:46:40.620 --> 00:46:41.480
hitting that application
00:46:41.480 --> 00:46:42.740
it is providing the response
00:46:43.260 --> 00:46:43.980
with the help of
00:46:45.340 --> 00:46:46.380
api keys and all
00:46:46.380 --> 00:46:47.640
so that's where let's say
00:46:47.640 --> 00:46:48.700
three developers worked on
00:46:49.420 --> 00:46:51.200
one of the implementations
00:46:51.200 --> 00:46:52.360
so let's say you have
00:46:52.360 --> 00:46:53.380
a vendor with you
00:46:53.380 --> 00:46:55.000
and that vendor takes
00:46:55.000 --> 00:46:56.240
the responsibility of delivering
00:46:56.240 --> 00:46:57.780
the api
00:46:57.780 --> 00:47:00.020
and you wanted to build
00:47:00.020 --> 00:47:02.660
a application on top of this api
00:47:02.660 --> 00:47:03.700
and you wanted to deliver
00:47:03.700 --> 00:47:05.300
this as a kind of product
00:47:05.300 --> 00:47:06.400
to your clients
00:47:06.400 --> 00:47:08.360
so you have a dependency
00:47:08.360 --> 00:47:09.400
with one of the team
00:47:09.400 --> 00:47:10.780
and that team
00:47:10.780 --> 00:47:12.120
continuously deploys
00:47:12.120 --> 00:47:13.480
and delivers everything
00:47:13.480 --> 00:47:15.720
like right now
00:47:15.720 --> 00:47:16.880
this week you have
00:47:16.880 --> 00:47:18.060
api version v1
00:47:18.060 --> 00:47:20.760
and going forward on next week
00:47:20.760 --> 00:47:21.640
they deployed
00:47:21.640 --> 00:47:23.100
api version v2
00:47:23.100 --> 00:47:25.020
but right now your application
00:47:25.020 --> 00:47:27.180
mostly works for api v1
00:47:27.180 --> 00:47:28.020
and you don't know
00:47:28.020 --> 00:47:29.760
what exactly the conventions
00:47:29.760 --> 00:47:31.660
that are changed for api
00:47:32.660 --> 00:47:34.940
for v4 sorry 1.4
00:47:34.940 --> 00:47:35.900
so let's say
00:47:35.900 --> 00:47:37.780
as you i mean
00:47:37.780 --> 00:47:39.440
if you know how
00:47:39.440 --> 00:47:40.460
api convention works
00:47:40.460 --> 00:47:42.800
basically let's say
00:47:42.800 --> 00:47:44.000
the version changes happens
00:47:44.000 --> 00:47:46.120
and the predefined
00:47:46.120 --> 00:47:47.160
convention also changes
00:47:47.160 --> 00:47:48.160
with those specific
00:47:48.160 --> 00:47:48.840
version changes
00:47:48.840 --> 00:47:50.460
and you have to understand
00:47:50.460 --> 00:47:51.740
what exactly changed
00:47:51.740 --> 00:47:52.780
are there any breaking
00:47:52.780 --> 00:47:53.900
changes over there
00:47:53.900 --> 00:47:55.060
and and all
00:47:55.060 --> 00:47:57.260
so like when it comes
00:47:57.260 --> 00:47:58.060
to version changes
00:47:58.060 --> 00:47:58.960
managing them
00:47:58.960 --> 00:47:59.460
and maintaining
00:47:59.460 --> 00:48:00.240
the version changes
00:48:00.240 --> 00:48:01.660
becomes a lot of help for us
00:48:02.220 --> 00:48:04.060
when we manage them
00:48:04.760 --> 00:48:06.300
like standalone implementations
00:48:06.300 --> 00:48:07.660
so that's where
00:48:07.660 --> 00:48:09.480
this mule point sits on
00:48:09.480 --> 00:48:11.580
so for all these
00:48:13.220 --> 00:48:14.620
api conventions like
00:48:15.320 --> 00:48:17.560
this is like being abstracted
00:48:17.560 --> 00:48:20.320
by mule soft itself
00:48:20.320 --> 00:48:22.660
so the basically this area
00:48:22.660 --> 00:48:24.320
is where you integrate
00:48:24.320 --> 00:48:24.940
the mule soft
00:48:24.940 --> 00:48:26.780
so that you can have
00:48:26.780 --> 00:48:28.360
integration with the
00:48:28.360 --> 00:48:29.500
dependency teams
00:48:29.500 --> 00:48:30.680
and the product
00:48:30.680 --> 00:48:31.260
that you're delivering
00:48:31.260 --> 00:48:32.040
to your customers
00:48:32.040 --> 00:48:33.760
so that you have your
00:48:34.420 --> 00:48:35.380
fine-grained control
00:48:35.380 --> 00:48:36.580
over which api version
00:48:36.580 --> 00:48:38.360
you use and all
00:48:38.360 --> 00:48:39.480
so that's where
00:48:40.100 --> 00:48:41.180
like the upstream
00:48:41.180 --> 00:48:42.740
and utilizers
00:48:42.740 --> 00:48:43.760
where end product
00:48:43.760 --> 00:48:44.720
is delivered
00:48:44.720 --> 00:48:45.440
are connected
00:48:45.440 --> 00:48:46.720
with the help of mule soft
00:48:46.720 --> 00:48:48.100
i guess that makes sense
00:48:51.210 --> 00:48:53.070
yeah so till now
00:48:53.930 --> 00:48:55.250
we discussed about
00:48:55.250 --> 00:48:55.930
what is api
00:48:55.930 --> 00:48:56.950
what is api and all
00:48:56.950 --> 00:48:59.210
but this is a kind of
00:48:59.210 --> 00:48:59.950
broad definition
00:48:59.950 --> 00:49:02.550
we haven't gone till into
00:49:02.550 --> 00:49:03.370
our specifications
00:49:03.370 --> 00:49:05.590
how this api is designed
00:49:05.590 --> 00:49:06.810
how this api
00:49:06.810 --> 00:49:08.350
actually created and all
00:49:08.350 --> 00:49:10.030
right so that's where
00:49:10.030 --> 00:49:11.390
raml language comes into picture
00:49:11.390 --> 00:49:13.170
so as i have told right
00:49:13.170 --> 00:49:14.170
a pre-understand
00:49:14.170 --> 00:49:15.730
or pre-defined convention
00:49:15.730 --> 00:49:17.230
so what is the specific
00:49:17.230 --> 00:49:18.230
pre-defined convention
00:49:18.350 --> 00:49:19.950
so that is raml
00:49:20.670 --> 00:49:22.330
so basically raml
00:49:22.330 --> 00:49:22.910
is a kind of
00:49:23.950 --> 00:49:24.970
universal language
00:49:24.970 --> 00:49:25.390
you can say
00:49:26.110 --> 00:49:27.870
in terms of mule soft
00:49:27.870 --> 00:49:29.330
and we have
00:49:29.330 --> 00:49:30.470
other applications as well
00:49:30.470 --> 00:49:31.730
which are created
00:49:31.730 --> 00:49:32.910
on top of raml language
00:49:32.910 --> 00:49:34.630
that is out of topic right now
00:49:34.630 --> 00:49:36.510
so but yeah raml is
00:49:36.510 --> 00:49:37.350
a language
00:49:37.350 --> 00:49:39.250
people use to create
00:49:39.250 --> 00:49:40.250
their api's
00:49:40.250 --> 00:49:41.550
and just publish their api's
00:49:42.430 --> 00:49:44.150
inside this delivery exchange
00:49:44.150 --> 00:49:46.690
so that people can just
00:49:46.690 --> 00:49:48.330
grab those raml
00:49:48.330 --> 00:49:49.010
specifications
00:49:49.010 --> 00:49:50.510
and build their applications
00:49:50.510 --> 00:49:51.730
or build their integrations
00:49:51.730 --> 00:49:52.470
on top of that
00:49:52.470 --> 00:49:54.410
so that's where raml
00:49:54.410 --> 00:49:55.270
comes into picture
00:49:55.270 --> 00:49:56.510
so whenever
00:49:58.130 --> 00:50:00.350
i mean till now
00:50:00.350 --> 00:50:01.250
i'm telling implementation
00:50:01.250 --> 00:50:02.350
implementation and implementation
00:50:02.350 --> 00:50:03.430
so what is this
00:50:03.430 --> 00:50:04.150
specific implementation
00:50:04.150 --> 00:50:05.690
so we wanted to define
00:50:06.510 --> 00:50:07.530
a way
00:50:08.370 --> 00:50:09.590
endpoint response
00:50:09.590 --> 00:50:11.270
so let's say i have created
00:50:11.270 --> 00:50:12.330
a endpoint called
00:50:12.850 --> 00:50:14.190
products endpoint
00:50:15.330 --> 00:50:16.450
products endpoint
00:50:17.410 --> 00:50:19.330
and basically this
00:50:19.330 --> 00:50:19.790
product endpoint
00:50:19.790 --> 00:50:21.170
is mostly responsible for
00:50:22.290 --> 00:50:23.570
providing you
00:50:23.570 --> 00:50:24.530
a list of products
00:50:25.630 --> 00:50:27.070
like like you have
00:50:27.070 --> 00:50:28.090
a catalog with you
00:50:28.090 --> 00:50:30.250
and you have this catalog
00:50:30.250 --> 00:50:30.930
says that
00:50:30.930 --> 00:50:32.530
you have product one
00:50:37.070 --> 00:50:38.270
et and all
00:50:38.270 --> 00:50:39.890
so you wanted to tell your
00:50:41.670 --> 00:50:43.030
application programmers
00:50:43.030 --> 00:50:44.130
that i have this
00:50:45.610 --> 00:50:46.770
products with me
00:50:46.770 --> 00:50:47.670
but how can you tell
00:50:47.670 --> 00:50:48.930
so you'll be implementing
00:50:48.930 --> 00:50:49.810
a product api
00:50:50.730 --> 00:50:52.270
and this product api
00:50:52.270 --> 00:50:53.870
is like responsible to throw
00:50:53.870 --> 00:50:55.330
what is what is the catalog
00:50:55.330 --> 00:50:55.950
that you have
00:50:55.950 --> 00:50:57.570
so whenever let's say
00:50:57.570 --> 00:50:58.610
a developer hits
00:50:58.610 --> 00:50:59.690
this product api
00:51:00.310 --> 00:51:01.690
he'll get the list of products
00:51:02.250 --> 00:51:03.290
no matter
00:51:05.050 --> 00:51:06.250
your implementation
00:51:06.250 --> 00:51:07.370
has changed a lot
00:51:07.370 --> 00:51:08.070
let's say
00:51:08.070 --> 00:51:09.750
you have migrated from
00:51:09.750 --> 00:51:10.250
java-based
00:51:11.530 --> 00:51:12.730
implementation to
00:51:12.730 --> 00:51:13.690
python-based servers
00:51:13.690 --> 00:51:15.110
lot of your architecture
00:51:15.110 --> 00:51:15.910
has changed
00:51:16.730 --> 00:51:17.570
you don't care about
00:51:17.570 --> 00:51:18.290
any of those
00:51:18.290 --> 00:51:19.130
you just tell
00:51:19.690 --> 00:51:20.950
your integration team
00:51:20.950 --> 00:51:21.850
that let's say
00:51:21.850 --> 00:51:22.490
you wanted to have
00:51:22.490 --> 00:51:23.050
list of products
00:51:23.050 --> 00:51:24.130
just hit this
00:51:24.130 --> 00:51:25.290
you don't need to care about
00:51:26.230 --> 00:51:27.470
what exactly
00:51:27.470 --> 00:51:28.890
how exactly it is implemented
00:51:28.890 --> 00:51:30.330
so that's where
00:51:30.870 --> 00:51:32.610
an api raml
00:51:32.610 --> 00:51:33.470
language implementation
00:51:33.470 --> 00:51:34.150
comes into picture
00:51:34.150 --> 00:51:35.250
so it's basically
00:51:36.090 --> 00:51:36.950
you hit this
00:51:36.950 --> 00:51:38.010
i'll give you this
00:51:38.010 --> 00:51:39.710
so that's where it works
00:51:39.710 --> 00:51:41.410
so we'll be defining
00:51:42.250 --> 00:51:43.670
what exactly
00:51:43.690 --> 00:51:45.050
things are going to be
00:51:45.050 --> 00:51:46.150
like how you handle
00:51:46.150 --> 00:51:47.210
the incoming request
00:51:47.210 --> 00:51:48.230
inside your api
00:51:48.230 --> 00:51:49.170
so that you can
00:51:49.170 --> 00:51:50.430
process the api
00:51:50.430 --> 00:51:51.030
and interact
00:51:51.030 --> 00:51:52.390
with this api
00:51:52.390 --> 00:51:53.290
to our backend systems
00:51:53.290 --> 00:51:54.170
so let's say
00:51:54.170 --> 00:51:54.490
you have
00:51:55.650 --> 00:51:56.850
backend database
00:51:56.850 --> 00:51:57.690
connected to your
00:51:57.690 --> 00:51:58.830
implementing application
00:51:59.870 --> 00:52:01.850
and you wanted to level
00:52:01.850 --> 00:52:03.190
so let's say
00:52:03.190 --> 00:52:03.670
right now
00:52:03.670 --> 00:52:04.750
this is a get request
00:52:05.450 --> 00:52:07.610
so if you have an idea
00:52:07.610 --> 00:52:08.970
on how
00:52:08.970 --> 00:52:10.150
HTTP request works
00:52:10.150 --> 00:52:11.770
in software-based
00:52:11.770 --> 00:52:12.510
implementations
00:52:12.510 --> 00:52:13.670
we call that as
00:52:14.490 --> 00:52:15.250
implementations
00:52:15.250 --> 00:52:17.550
so this restful implementations
00:52:17.550 --> 00:52:18.650
provides you a picture
00:52:19.430 --> 00:52:22.790
that let's say
00:52:22.790 --> 00:52:23.430
no matter what
00:52:24.930 --> 00:52:26.270
you've done
00:52:27.190 --> 00:52:29.110
the systems state
00:52:29.110 --> 00:52:31.370
before your request
00:52:31.370 --> 00:52:32.630
and after your request
00:52:32.630 --> 00:52:33.790
should be same
00:52:34.310 --> 00:52:35.490
so let's say
00:52:35.490 --> 00:52:36.070
i wanted to
00:52:37.070 --> 00:52:37.930
post a product
00:52:37.930 --> 00:52:39.070
to your catalog
00:52:39.070 --> 00:52:40.390
or you can't just
00:52:40.390 --> 00:52:41.210
go to database
00:52:41.210 --> 00:52:41.910
by yourself
00:52:41.910 --> 00:52:43.490
and push the product
00:52:43.490 --> 00:52:45.390
so you wanted to have
00:52:45.390 --> 00:52:46.550
an api with you
00:52:46.550 --> 00:52:47.450
we call that as a
00:52:47.450 --> 00:52:48.610
post api
00:52:48.610 --> 00:52:49.330
or put api
00:52:50.050 --> 00:52:50.810
so basically
00:52:50.810 --> 00:52:51.550
post api
00:52:51.550 --> 00:52:51.970
or put api
00:52:53.310 --> 00:52:54.630
you can stop me
00:52:54.630 --> 00:52:55.390
if you don't
00:52:55.390 --> 00:52:56.150
wanted to listen
00:52:56.150 --> 00:52:56.830
this because
00:52:56.830 --> 00:52:57.750
this is
00:52:57.750 --> 00:52:58.590
like away from
00:53:00.390 --> 00:53:01.830
so yeah exactly
00:53:01.830 --> 00:53:02.650
if you wanted to
00:53:02.650 --> 00:53:03.130
understand
00:53:03.130 --> 00:53:04.050
use of implementations
00:53:04.050 --> 00:53:04.590
we have to
00:53:04.590 --> 00:53:05.470
understand this terminology
00:53:05.470 --> 00:53:06.070
basically
00:53:06.070 --> 00:53:07.050
this is the kind of
00:53:07.690 --> 00:53:08.210
prerequisite
00:53:09.430 --> 00:53:10.870
so post and put
00:53:10.870 --> 00:53:12.030
it's a kind of
00:53:12.030 --> 00:53:12.770
request that you
00:53:12.770 --> 00:53:14.610
to the application
00:53:14.610 --> 00:53:16.150
in term of api level
00:53:16.150 --> 00:53:17.290
not a database level
00:53:17.290 --> 00:53:19.010
so for the
00:53:19.010 --> 00:53:19.430
three layer
00:53:19.430 --> 00:53:20.550
implementations
00:53:20.550 --> 00:53:21.890
first we'll be having
00:53:22.510 --> 00:53:23.570
user level
00:53:24.970 --> 00:53:26.370
where user
00:53:26.370 --> 00:53:27.030
end user
00:53:27.030 --> 00:53:27.690
directly interacts
00:53:27.690 --> 00:53:28.470
with the application
00:53:28.470 --> 00:53:29.410
and we have
00:53:29.410 --> 00:53:30.530
business logic
00:53:32.270 --> 00:53:33.810
and database layer
00:53:36.670 --> 00:53:38.570
and in this
00:53:38.570 --> 00:53:39.250
whole ecosystem
00:53:39.810 --> 00:53:41.150
new soft comes
00:53:41.150 --> 00:53:42.650
and business layer
00:53:42.650 --> 00:53:43.770
business logic layer
00:53:43.770 --> 00:53:45.450
so but
00:53:45.450 --> 00:53:46.150
let's say
00:53:46.150 --> 00:53:46.770
you wanted to
00:53:46.770 --> 00:53:47.470
create a catalog
00:53:47.470 --> 00:53:48.370
or add an item
00:53:48.370 --> 00:53:49.050
to the catalog
00:53:49.050 --> 00:53:50.150
you'll be having
00:53:50.150 --> 00:53:51.190
post request with you
00:53:51.190 --> 00:53:51.930
so the user
00:53:51.930 --> 00:53:53.010
pushes a post request
00:53:53.010 --> 00:53:53.790
it goes to the
00:53:53.790 --> 00:53:54.490
business logic layer
00:53:54.490 --> 00:53:55.550
and you will be
00:53:55.550 --> 00:53:56.010
defining
00:53:56.010 --> 00:53:57.150
what exactly
00:53:57.150 --> 00:53:57.870
you need to do
00:53:57.870 --> 00:53:58.490
in terms of
00:54:00.410 --> 00:54:00.970
like
00:54:00.970 --> 00:54:02.470
how the
00:54:02.470 --> 00:54:02.890
put request
00:54:02.890 --> 00:54:03.690
to respond
00:54:04.470 --> 00:54:05.590
it requires
00:54:05.590 --> 00:54:06.370
like
00:54:06.370 --> 00:54:07.510
internal implementations
00:54:07.510 --> 00:54:08.250
about like
00:54:08.250 --> 00:54:08.770
what database
00:54:08.770 --> 00:54:09.610
that you use
00:54:09.610 --> 00:54:10.370
I use
00:54:10.370 --> 00:54:10.950
post with
00:54:10.950 --> 00:54:11.710
SQL instances
00:54:11.710 --> 00:54:12.630
or use
00:54:12.630 --> 00:54:13.490
MongoDB
00:54:13.490 --> 00:54:14.170
or use
00:54:14.170 --> 00:54:14.630
CosmoDB
00:54:14.630 --> 00:54:15.070
database
00:54:15.070 --> 00:54:15.950
that
00:54:15.950 --> 00:54:16.870
user doesn't need
00:54:16.870 --> 00:54:17.530
to care about
00:54:17.530 --> 00:54:18.150
so basically
00:54:18.150 --> 00:54:19.010
he just wanted to
00:54:19.010 --> 00:54:19.450
push that
00:54:19.450 --> 00:54:20.390
and it should be
00:54:21.130 --> 00:54:21.930
reflecting into
00:54:21.930 --> 00:54:22.250
database
00:54:22.250 --> 00:54:23.730
so that's how
00:54:23.730 --> 00:54:24.410
put and post
00:54:24.410 --> 00:54:24.730
work
00:54:24.730 --> 00:54:25.770
and we also have
00:54:25.770 --> 00:54:26.310
this
00:54:26.310 --> 00:54:26.870
get as well
00:54:28.770 --> 00:54:29.870
and we have
00:54:29.870 --> 00:54:30.470
this patch
00:54:32.270 --> 00:54:33.330
we'll be discussing
00:54:33.330 --> 00:54:34.610
the implementations
00:54:34.610 --> 00:54:35.090
later
00:54:35.090 --> 00:54:35.930
the help of
00:54:35.930 --> 00:54:36.650
core examples
00:54:36.650 --> 00:54:37.790
and we have
00:54:37.790 --> 00:54:39.010
this get APH
00:54:39.010 --> 00:54:40.050
and all
00:54:40.050 --> 00:54:40.630
sorry
00:54:40.630 --> 00:54:41.530
delete APH
00:54:42.630 --> 00:54:43.910
and then
00:54:43.910 --> 00:54:44.830
post output
00:54:44.830 --> 00:54:45.990
so these are
00:54:45.990 --> 00:54:46.990
preliminary APIs
00:54:47.910 --> 00:54:48.710
what one
00:54:49.910 --> 00:54:50.850
user can
00:54:50.850 --> 00:54:51.370
you know
00:54:51.370 --> 00:54:51.830
integrate
00:54:51.830 --> 00:54:52.990
or respond
00:54:53.750 --> 00:54:54.890
to a business logic
00:54:54.890 --> 00:54:55.690
implementations
00:54:55.690 --> 00:54:57.710
so that's how
00:54:57.710 --> 00:54:58.790
we'll be designing
00:54:59.430 --> 00:55:01.010
raml implementations
00:55:02.110 --> 00:55:03.110
so
00:55:03.750 --> 00:55:04.790
that's the thing
00:55:04.790 --> 00:55:05.390
and
00:55:07.350 --> 00:55:08.310
that is one of the
00:55:08.310 --> 00:55:09.250
use case of
00:55:09.250 --> 00:55:09.730
raml
00:55:09.730 --> 00:55:10.450
implementations
00:55:10.450 --> 00:55:11.130
and
00:55:11.130 --> 00:55:11.970
when it comes to
00:55:11.970 --> 00:55:12.890
raml management
00:55:13.670 --> 00:55:14.270
like
00:55:14.890 --> 00:55:16.050
it's not about
00:55:16.050 --> 00:55:16.670
just
00:55:16.670 --> 00:55:17.450
like providing
00:55:20.630 --> 00:55:21.230
implementation
00:55:21.230 --> 00:55:21.750
one time
00:55:21.750 --> 00:55:22.330
and
00:55:22.330 --> 00:55:23.050
your job is done
00:55:23.050 --> 00:55:24.070
it's not like that
00:55:24.070 --> 00:55:24.730
so we have to
00:55:25.810 --> 00:55:26.410
maintain
00:55:26.410 --> 00:55:27.070
that specific
00:55:27.070 --> 00:55:27.550
implementation
00:55:27.550 --> 00:55:28.190
as well
00:55:28.190 --> 00:55:28.730
so let's say
00:55:28.730 --> 00:55:28.970
you have
00:55:28.970 --> 00:55:29.210
created
00:55:29.210 --> 00:55:30.010
implementation
00:55:30.010 --> 00:55:30.850
you need to
00:55:30.850 --> 00:55:31.470
provide a
00:55:31.470 --> 00:55:32.510
documentation for that
00:55:32.510 --> 00:55:33.150
so
00:55:33.150 --> 00:55:34.010
mostly
00:55:34.010 --> 00:55:34.790
use of
00:55:34.790 --> 00:55:35.610
developers are
00:55:35.610 --> 00:55:36.610
the middlemen
00:55:36.610 --> 00:55:37.650
so they have
00:55:37.650 --> 00:55:38.370
stream developers
00:55:38.370 --> 00:55:38.790
as well
00:55:38.790 --> 00:55:39.510
they have downstream
00:55:39.510 --> 00:55:40.550
application
00:55:40.550 --> 00:55:41.810
users as well
00:55:41.810 --> 00:55:42.550
who will be
00:55:42.550 --> 00:55:43.070
consuming these
00:55:43.070 --> 00:55:43.370
APIs
00:55:43.370 --> 00:55:44.910
so you need to have
00:55:44.910 --> 00:55:46.490
documentation with you
00:55:46.490 --> 00:55:47.750
which is
00:55:47.750 --> 00:55:48.130
like
00:55:48.130 --> 00:55:50.010
kind of
00:55:50.010 --> 00:55:50.850
well described
00:55:50.850 --> 00:55:51.450
documentation
00:55:52.130 --> 00:55:52.770
so
00:55:52.770 --> 00:55:54.410
as a
00:55:54.410 --> 00:55:55.110
raml developers
00:55:55.110 --> 00:55:56.310
we are responsible
00:55:56.310 --> 00:55:57.030
for delivering this
00:55:58.210 --> 00:55:59.350
management of
00:55:59.350 --> 00:55:59.990
I mean
00:55:59.990 --> 00:56:00.710
the documentation
00:56:00.710 --> 00:56:01.150
management
00:56:01.150 --> 00:56:02.290
for this as well
00:56:02.290 --> 00:56:02.750
and
00:56:02.750 --> 00:56:03.470
we have to
00:56:03.470 --> 00:56:03.910
manage the
00:56:03.910 --> 00:56:04.490
life cycle of
00:56:04.490 --> 00:56:04.870
APIs
00:56:05.530 --> 00:56:06.850
so this is
00:56:06.850 --> 00:56:07.490
a kind of
00:56:07.490 --> 00:56:08.370
most important thing
00:56:08.370 --> 00:56:09.010
when it comes to
00:56:09.010 --> 00:56:09.450
raml-based
00:56:09.450 --> 00:56:10.110
implementations
00:56:10.110 --> 00:56:10.610
so
00:56:10.610 --> 00:56:12.010
we have this
00:56:12.010 --> 00:56:12.410
expiration
00:56:12.410 --> 00:56:13.310
and non-expiration
00:56:14.890 --> 00:56:14.910
for
00:56:15.690 --> 00:56:16.250
APIs
00:56:16.250 --> 00:56:16.930
so basically
00:56:16.930 --> 00:56:17.730
APIs will be
00:56:17.730 --> 00:56:18.170
retiring
00:56:18.170 --> 00:56:19.290
on some
00:56:19.290 --> 00:56:20.050
time later
00:56:20.050 --> 00:56:20.870
so we have
00:56:20.870 --> 00:56:21.670
this convention
00:56:21.670 --> 00:56:22.070
for
00:56:22.070 --> 00:56:22.270
APIs
00:56:23.470 --> 00:56:24.570
in its whole
00:56:24.570 --> 00:56:25.110
life cycle
00:56:25.110 --> 00:56:27.490
let's say
00:56:27.490 --> 00:56:28.110
mostly
00:56:28.110 --> 00:56:28.830
like
00:56:28.830 --> 00:56:29.370
large
00:56:29.370 --> 00:56:30.070
applications
00:56:30.070 --> 00:56:30.190
or
00:56:31.850 --> 00:56:32.650
businesses
00:56:32.650 --> 00:56:33.310
who has
00:56:33.310 --> 00:56:33.470
growth
00:56:34.050 --> 00:56:35.470
associated with them
00:56:35.470 --> 00:56:35.950
their
00:56:35.950 --> 00:56:36.530
APIs will be
00:56:36.530 --> 00:56:37.370
looking like this
00:56:37.370 --> 00:56:38.810
it's a kind of
00:56:38.810 --> 00:56:39.690
development
00:56:40.810 --> 00:56:41.490
tradition
00:56:41.490 --> 00:56:42.110
you can call as
00:56:44.570 --> 00:56:45.930
and then
00:56:45.930 --> 00:56:46.690
for
00:56:46.690 --> 00:56:48.250
whether that might be
00:56:48.250 --> 00:56:48.670
catalog
00:56:50.590 --> 00:56:51.270
or
00:56:52.190 --> 00:56:52.530
so
00:56:52.530 --> 00:56:53.870
V1
00:56:53.870 --> 00:56:54.430
describes
00:56:54.430 --> 00:56:54.790
you
00:56:54.790 --> 00:56:55.470
the portion of
00:56:55.470 --> 00:56:56.470
API that you have
00:56:56.470 --> 00:56:56.810
let's say
00:56:56.810 --> 00:56:57.410
you wanted to
00:56:57.410 --> 00:56:57.830
move to
00:56:57.830 --> 00:56:58.550
V2 API
00:56:58.550 --> 00:56:59.050
and
00:56:59.050 --> 00:56:59.650
wanted to
00:56:59.650 --> 00:56:59.950
duplicate
00:56:59.950 --> 00:57:00.750
all the
00:57:00.750 --> 00:57:01.870
V1 APIs
00:57:01.870 --> 00:57:02.710
that were
00:57:02.710 --> 00:57:03.610
you know
00:57:03.610 --> 00:57:04.190
provided across
00:57:05.290 --> 00:57:06.290
to your
00:57:06.290 --> 00:57:06.630
clients
00:57:06.630 --> 00:57:07.030
or
00:57:07.030 --> 00:57:08.070
to the
00:57:08.070 --> 00:57:08.470
downstream
00:57:08.470 --> 00:57:09.430
implementations
00:57:09.430 --> 00:57:10.090
or
00:57:10.090 --> 00:57:10.610
those
00:57:10.610 --> 00:57:11.290
in those
00:57:11.290 --> 00:57:11.590
scenarios
00:57:11.590 --> 00:57:12.190
you can just
00:57:12.190 --> 00:57:12.630
deploy
00:57:12.630 --> 00:57:13.270
these
00:57:13.270 --> 00:57:13.890
V1 end points
00:57:13.890 --> 00:57:14.850
in a separate
00:57:14.850 --> 00:57:15.990
deployment aspect
00:57:15.990 --> 00:57:16.770
and again
00:57:16.770 --> 00:57:17.370
that's a
00:57:17.370 --> 00:57:18.230
architecture decision
00:57:18.230 --> 00:57:19.170
that needs to be
00:57:19.170 --> 00:57:19.550
decided
00:57:19.550 --> 00:57:20.250
of
00:57:20.250 --> 00:57:20.550
implementation
00:57:20.550 --> 00:57:21.010
I mean
00:57:21.010 --> 00:57:21.690
at the starting point
00:57:21.690 --> 00:57:22.150
of implementation
00:57:22.150 --> 00:57:22.910
but yeah
00:57:22.910 --> 00:57:23.690
this is the way
00:57:24.590 --> 00:57:25.570
APIs are
00:57:25.570 --> 00:57:26.070
organized
00:57:26.070 --> 00:57:26.530
in
00:57:27.550 --> 00:57:28.190
MuleSoft
00:57:28.190 --> 00:57:29.230
and
00:57:29.230 --> 00:57:29.530
API
00:57:29.530 --> 00:57:30.470
here
00:57:30.470 --> 00:57:31.450
when I say
00:57:31.450 --> 00:57:32.070
business
00:57:32.070 --> 00:57:34.110
that might be
00:57:34.110 --> 00:57:34.850
let's say
00:57:34.850 --> 00:57:35.410
you have
00:57:35.410 --> 00:57:36.050
a whole
00:57:36.050 --> 00:57:36.330
lot of
00:57:37.290 --> 00:57:38.310
retail systems
00:57:38.310 --> 00:57:39.430
or
00:57:39.430 --> 00:57:40.030
let's say
00:57:40.030 --> 00:57:40.350
you have
00:57:42.370 --> 00:57:42.970
maybe
00:57:42.970 --> 00:57:43.950
data warehousing
00:57:45.290 --> 00:57:46.130
business logic
00:57:46.130 --> 00:57:47.050
application as well
00:57:47.050 --> 00:57:47.950
so you'll be
00:57:47.950 --> 00:57:48.490
creating
00:57:48.490 --> 00:57:49.370
after
00:57:49.370 --> 00:57:50.350
API slash
00:57:50.350 --> 00:57:50.950
you'll be
00:57:50.950 --> 00:57:51.390
providing your
00:57:52.130 --> 00:57:53.150
business specific
00:57:53.150 --> 00:57:54.030
application
00:57:54.030 --> 00:57:54.990
to which
00:57:54.990 --> 00:57:55.630
these APIs
00:57:55.630 --> 00:57:56.530
are pointing towards
00:57:56.530 --> 00:57:57.570
so
00:57:57.570 --> 00:57:58.030
you got right
00:57:58.030 --> 00:57:58.470
so basically
00:57:58.470 --> 00:57:59.430
these are
00:57:59.430 --> 00:58:00.230
our specifications
00:58:00.230 --> 00:58:00.970
what we call
00:58:00.970 --> 00:58:02.070
this comes under
00:58:02.070 --> 00:58:03.270
a management layer
00:58:03.270 --> 00:58:04.110
so basically
00:58:04.110 --> 00:58:04.790
I mean
00:58:04.790 --> 00:58:05.370
we'll be managing
00:58:05.370 --> 00:58:05.990
the life cycle
00:58:05.990 --> 00:58:06.310
of the
00:58:06.310 --> 00:58:07.410
API as well
00:58:07.410 --> 00:58:08.230
after one
00:58:08.230 --> 00:58:08.670
or two
00:58:08.670 --> 00:58:08.970
years
00:58:10.130 --> 00:58:10.730
and
00:58:10.730 --> 00:58:11.330
providing
00:58:13.050 --> 00:58:13.650
more
00:58:13.650 --> 00:58:14.410
sophisticated
00:58:14.410 --> 00:58:14.750
APIs
00:58:14.750 --> 00:58:15.870
with the help of
00:58:15.870 --> 00:58:16.030
V2
00:58:16.650 --> 00:58:18.090
version that we
00:58:18.090 --> 00:58:18.590
release across
00:58:18.590 --> 00:58:19.350
towards the kind
00:58:20.170 --> 00:58:21.490
so that's where
00:58:21.490 --> 00:58:22.630
we'll be using
00:58:22.630 --> 00:58:23.210
raml
00:58:23.210 --> 00:58:23.790
so raml
00:58:23.790 --> 00:58:24.350
has its own
00:58:26.090 --> 00:58:26.690
specification
00:58:26.690 --> 00:58:27.090
I mean
00:58:27.090 --> 00:58:27.930
the mechanism
00:58:27.930 --> 00:58:28.430
where in which
00:58:31.730 --> 00:58:32.330
management
00:58:32.990 --> 00:58:33.750
comes into picture
00:58:33.750 --> 00:58:34.350
so we have
00:58:34.350 --> 00:58:35.110
these different layers
00:58:35.110 --> 00:58:35.470
inside the
00:58:36.330 --> 00:58:36.990
raml code
00:58:36.990 --> 00:58:38.710
that we wanted to
00:58:38.710 --> 00:58:39.190
you know
00:58:39.190 --> 00:58:39.930
manage
00:58:40.910 --> 00:58:41.810
our life cycle
00:58:41.810 --> 00:58:42.270
as well
00:58:42.270 --> 00:58:43.250
so that is
00:58:43.250 --> 00:58:44.130
the thing
00:58:44.130 --> 00:58:45.570
so once we
00:58:45.570 --> 00:58:46.030
like after
00:58:46.030 --> 00:58:46.410
this slide
00:58:46.410 --> 00:58:46.930
we'll be going
00:58:46.930 --> 00:58:47.430
into
00:58:48.410 --> 00:58:48.930
actual
00:58:48.930 --> 00:58:49.630
raml code
00:58:49.630 --> 00:58:50.170
as well
00:58:50.170 --> 00:58:50.850
so that
00:58:50.850 --> 00:58:51.930
we can have
00:58:51.930 --> 00:58:52.530
the catch on
00:58:52.530 --> 00:58:53.370
implementation experience
00:58:53.370 --> 00:58:53.890
as well as that
00:58:53.890 --> 00:58:54.990
and once
00:58:56.310 --> 00:58:57.110
all development
00:58:57.110 --> 00:58:57.710
is completed
00:58:57.710 --> 00:58:58.750
so we wanted to
00:58:59.910 --> 00:59:00.470
I mean
00:59:00.470 --> 00:59:01.210
we have developed
00:59:01.210 --> 00:59:02.130
the whole application
00:59:02.130 --> 00:59:02.470
and
00:59:02.470 --> 00:59:02.950
we want to
00:59:02.950 --> 00:59:03.430
manage that
00:59:03.430 --> 00:59:03.950
right now
00:59:03.950 --> 00:59:04.590
like we can just
00:59:06.030 --> 00:59:07.070
provide this
00:59:07.950 --> 00:59:08.470
raml
00:59:08.470 --> 00:59:09.490
specification
00:59:09.490 --> 00:59:10.210
to your
00:59:10.210 --> 00:59:10.950
downstream
00:59:11.790 --> 00:59:12.550
developers
00:59:12.550 --> 00:59:13.230
who are
00:59:13.230 --> 00:59:14.210
working on top of your
00:59:15.050 --> 00:59:15.890
integrating tool
00:59:16.850 --> 00:59:18.090
here in this case
00:59:18.090 --> 00:59:18.550
mule soft
00:59:18.550 --> 00:59:20.930
so for them
00:59:20.930 --> 00:59:21.970
we wanted to
00:59:21.970 --> 00:59:22.710
expose this
00:59:22.710 --> 00:59:24.010
specific raml code
00:59:24.010 --> 00:59:24.870
but
00:59:24.870 --> 00:59:25.650
if like
00:59:25.650 --> 00:59:26.570
you can't just
00:59:26.570 --> 00:59:27.410
expose that
00:59:27.410 --> 00:59:28.150
like creating
00:59:28.150 --> 00:59:29.070
sending an email
00:59:29.070 --> 00:59:29.750
something like that
00:59:29.750 --> 00:59:32.550
we wanted to have a
00:59:32.550 --> 00:59:33.150
sophisticated
00:59:33.150 --> 00:59:33.870
or long-term
00:59:33.870 --> 00:59:34.630
mechanism
00:59:34.630 --> 00:59:36.270
where we wanted to
00:59:36.270 --> 00:59:37.090
you know
00:59:37.090 --> 00:59:37.490
provide
00:59:37.490 --> 00:59:38.470
exporting
00:59:38.470 --> 00:59:39.270
or
00:59:39.270 --> 00:59:39.990
sharing of
00:59:40.710 --> 00:59:41.350
APS
00:59:41.350 --> 00:59:41.930
between
00:59:41.930 --> 00:59:42.950
different different
00:59:44.070 --> 00:59:45.210
implementation aspects
00:59:45.210 --> 00:59:45.990
so that's where
00:59:46.630 --> 00:59:47.350
any point
00:59:47.350 --> 00:59:48.610
exchange comes into picture
00:59:48.610 --> 00:59:49.650
here this
00:59:49.650 --> 00:59:50.590
layer itself is
00:59:50.590 --> 00:59:51.450
abstracted right now
00:59:51.450 --> 00:59:52.370
but
00:59:52.370 --> 00:59:52.810
it is
00:59:52.810 --> 00:59:53.830
this specific
00:59:54.350 --> 00:59:55.790
exchange is
00:59:55.790 --> 00:59:55.990
more
00:59:57.230 --> 00:59:58.590
specific to any point
00:59:58.590 --> 00:59:58.990
platform
00:59:58.990 --> 00:59:59.830
like
00:59:59.830 --> 01:00:00.310
let's say
01:00:00.310 --> 01:00:01.430
you wanted to have
01:00:01.430 --> 01:00:02.070
your own
01:00:02.790 --> 01:00:03.890
sharing mechanism
01:00:03.890 --> 01:00:04.470
like
01:00:04.470 --> 01:00:05.090
in that scenario
01:00:05.090 --> 01:00:06.050
you can just
01:00:06.050 --> 01:00:06.890
opt for
01:00:06.890 --> 01:00:07.570
a third party
01:00:07.570 --> 01:00:08.650
sharing mechanism as well
01:00:08.650 --> 01:00:09.810
there are lot of solutions
01:00:09.810 --> 01:00:10.370
that are there
01:00:10.370 --> 01:00:11.910
inside the market right now
01:00:11.910 --> 01:00:13.210
who provide solutions on
01:00:14.570 --> 01:00:15.170
like
01:00:15.170 --> 01:00:17.250
the API exchanges as well
01:00:17.250 --> 01:00:18.270
where you wanted to publish
01:00:18.270 --> 01:00:18.850
your APIs
01:00:18.850 --> 01:00:19.430
and
01:00:19.430 --> 01:00:20.230
they have
01:00:20.230 --> 01:00:21.950
more features on that
01:00:21.950 --> 01:00:22.490
as well like
01:00:23.150 --> 01:00:24.490
which is not exposed
01:00:24.490 --> 01:00:25.050
towards the
01:00:25.050 --> 01:00:25.790
internet
01:00:25.790 --> 01:00:27.110
so you wanted to have
01:00:27.110 --> 01:00:27.930
closed
01:00:27.930 --> 01:00:29.590
deployments for these
01:00:29.590 --> 01:00:30.610
exchange servers
01:00:30.610 --> 01:00:31.630
and all
01:00:31.630 --> 01:00:32.490
so that's where
01:00:33.070 --> 01:00:33.730
this exchange
01:00:33.730 --> 01:00:34.410
comes into picture
01:00:34.410 --> 01:00:34.870
but
01:00:34.870 --> 01:00:35.930
this exchange is
01:00:35.930 --> 01:00:36.090
more
01:00:36.970 --> 01:00:37.990
tightly coupled with
01:00:37.990 --> 01:00:38.430
the API
01:00:38.430 --> 01:00:39.450
any point platform
01:00:39.450 --> 01:00:40.390
but it is
01:00:40.390 --> 01:00:41.810
not coupled with the
01:00:41.810 --> 01:00:42.390
raml
01:00:42.390 --> 01:00:43.430
language specification
01:00:43.430 --> 01:00:44.370
raml is
01:00:44.370 --> 01:00:44.670
basically
01:00:46.930 --> 01:00:47.770
more
01:00:47.770 --> 01:00:48.710
open point
01:00:48.710 --> 01:00:49.370
or
01:00:49.370 --> 01:00:50.570
open API specification
01:00:50.570 --> 01:00:51.070
following
01:00:51.070 --> 01:00:51.950
so it's like not
01:00:53.010 --> 01:00:53.750
tightly coupled
01:00:53.750 --> 01:00:54.670
with any point
01:00:54.670 --> 01:00:55.930
so you got
01:00:56.590 --> 01:00:57.070
and then
01:00:58.550 --> 01:00:59.210
finally
01:00:59.210 --> 01:00:59.850
consumption
01:00:59.850 --> 01:01:01.830
once you expose
01:01:01.830 --> 01:01:02.530
APIs
01:01:03.710 --> 01:01:04.990
to the end user
01:01:04.990 --> 01:01:06.290
it's not
01:01:06.290 --> 01:01:07.050
I mean
01:01:07.050 --> 01:01:07.810
it's not about
01:01:07.810 --> 01:01:09.270
just exposing them
01:01:09.270 --> 01:01:10.270
and or
01:01:10.270 --> 01:01:11.310
just publishing them
01:01:11.310 --> 01:01:13.590
and they will be
01:01:13.590 --> 01:01:14.570
using that right
01:01:14.570 --> 01:01:16.510
so we wanted to provide them
01:01:16.510 --> 01:01:17.370
a consuming
01:01:17.370 --> 01:01:18.010
capabilities
01:01:18.010 --> 01:01:18.930
like
01:01:19.570 --> 01:01:21.210
they will be
01:01:21.210 --> 01:01:22.130
different different
01:01:23.010 --> 01:01:24.110
applications or systems
01:01:24.110 --> 01:01:24.930
that needs to interact
01:01:24.930 --> 01:01:26.050
with these exposed services
01:01:26.050 --> 01:01:27.950
so let's say the consumers
01:01:27.950 --> 01:01:29.010
can use this
01:01:30.450 --> 01:01:31.890
APIs that we have deployed
01:01:31.890 --> 01:01:33.010
with the help of
01:01:33.010 --> 01:01:34.290
already developed raml code
01:01:34.290 --> 01:01:35.430
so that they can just
01:01:35.430 --> 01:01:36.090
hit this API
01:01:36.090 --> 01:01:37.730
and get the details
01:01:37.810 --> 01:01:39.190
and with the help of
01:01:39.190 --> 01:01:39.630
those details
01:01:39.630 --> 01:01:40.530
they can just
01:01:40.530 --> 01:01:41.990
build a UI applications
01:01:41.990 --> 01:01:42.990
and all
01:01:42.990 --> 01:01:44.230
so this like
01:01:44.230 --> 01:01:45.750
mulesoft provides us
01:01:45.750 --> 01:01:46.950
are different API tools
01:01:46.950 --> 01:01:47.990
so that
01:01:47.990 --> 01:01:49.830
consumers can discover this
01:01:49.830 --> 01:01:51.410
and consumers can
01:01:51.970 --> 01:01:53.070
integrate it
01:01:53.070 --> 01:01:54.270
with their own
01:01:54.270 --> 01:01:54.730
APIs
01:01:54.730 --> 01:01:55.670
effectively
01:01:55.670 --> 01:01:58.230
so this
01:01:58.230 --> 01:01:59.690
raml provides that
01:01:59.690 --> 01:02:00.610
specific integrations
01:02:01.270 --> 01:02:02.130
so that's what
01:02:02.650 --> 01:02:03.830
an API
01:02:03.830 --> 01:02:05.110
in terms of
01:02:05.110 --> 01:02:06.310
mulesoft implementations
01:02:06.310 --> 01:02:07.790
so for all these
01:02:07.810 --> 01:02:08.770
definition
01:02:08.770 --> 01:02:09.530
implementation
01:02:09.530 --> 01:02:10.290
and management
01:02:10.930 --> 01:02:11.910
any point on
01:02:11.910 --> 01:02:12.770
mulesoft has its own
01:02:13.690 --> 01:02:14.770
tightly coupled
01:02:15.810 --> 01:02:17.150
solution for them
01:02:17.150 --> 01:02:17.810
so that's what
01:02:17.810 --> 01:02:18.290
we'll be going
01:02:18.830 --> 01:02:19.570
forward
01:02:19.570 --> 01:02:20.930
discuss right now
01:02:20.930 --> 01:02:21.890
that is raml
01:02:26.430 --> 01:02:27.190
so
01:02:27.190 --> 01:02:28.810
as we have already
01:02:28.810 --> 01:02:29.730
this is kind of
01:02:29.730 --> 01:02:30.350
redundant one
01:02:30.350 --> 01:02:31.650
so if you
01:02:32.270 --> 01:02:33.590
if you know about
01:02:33.590 --> 01:02:34.310
yaml based
01:02:34.310 --> 01:02:35.070
implementations
01:02:36.210 --> 01:02:37.190
you have any
01:02:37.190 --> 01:02:38.110
basic idea about
01:02:38.110 --> 01:02:39.110
a yaml
01:02:39.110 --> 01:02:39.670
format
01:02:39.670 --> 01:02:40.470
you have it or
01:02:42.430 --> 01:02:43.450
okay okay
01:02:44.550 --> 01:02:45.670
so let me
01:02:54.270 --> 01:02:56.290
so an ml is basically
01:02:56.290 --> 01:02:57.030
a kind of
01:02:59.150 --> 01:03:00.430
a serialization
01:03:00.430 --> 01:03:01.450
data serialization
01:03:01.450 --> 01:03:01.970
format
01:03:01.970 --> 01:03:03.330
so we have this
01:03:03.330 --> 01:03:04.250
json format right
01:03:04.250 --> 01:03:04.770
json format
01:03:04.770 --> 01:03:05.450
uses the
01:03:05.450 --> 01:03:06.230
calibration syntaxes
01:03:06.950 --> 01:03:08.850
so let's say
01:03:08.850 --> 01:03:09.510
here in json
01:03:09.510 --> 01:03:10.110
we have
01:03:10.110 --> 01:03:11.190
key value mechanisms
01:03:11.190 --> 01:03:13.210
so we have a key
01:03:13.210 --> 01:03:14.550
and the associated
01:03:14.550 --> 01:03:15.350
value over there
01:03:16.610 --> 01:03:17.270
separated with
01:03:17.810 --> 01:03:18.490
colon
01:03:20.470 --> 01:03:21.430
basically
01:03:21.430 --> 01:03:22.330
value
01:03:23.350 --> 01:03:25.330
and that's how
01:03:25.330 --> 01:03:26.370
almost all
01:03:26.370 --> 01:03:27.190
APIs work
01:03:27.190 --> 01:03:27.590
till now
01:03:28.310 --> 01:03:29.310
even mulesoft
01:03:29.310 --> 01:03:29.950
APIs
01:03:29.950 --> 01:03:30.790
are built
01:03:30.790 --> 01:03:31.590
with the help of
01:03:33.290 --> 01:03:33.990
this specific
01:03:34.610 --> 01:03:35.930
json based
01:03:35.930 --> 01:03:36.750
data serialization
01:03:36.750 --> 01:03:37.150
format
01:03:37.150 --> 01:03:38.370
when i say data
01:03:38.370 --> 01:03:39.510
serialization format
01:03:40.090 --> 01:03:40.550
let's say
01:03:40.550 --> 01:03:41.110
you wanted to
01:03:41.110 --> 01:03:41.590
fetch and
01:03:41.590 --> 01:03:42.230
fetch some
01:03:42.230 --> 01:03:42.750
data from
01:03:42.750 --> 01:03:43.070
database
01:03:43.070 --> 01:03:44.210
and
01:03:44.210 --> 01:03:44.690
you know
01:03:44.690 --> 01:03:45.810
broadcast this data
01:03:45.810 --> 01:03:46.650
to lot of
01:03:47.450 --> 01:03:47.930
users
01:03:47.930 --> 01:03:49.030
via this API
01:03:49.030 --> 01:03:50.430
so that's how
01:03:50.430 --> 01:03:51.010
you'll be
01:03:51.010 --> 01:03:51.670
providing data
01:03:51.670 --> 01:03:52.470
i mean the
01:03:52.470 --> 01:03:53.350
response of
01:03:53.350 --> 01:03:54.290
a specific API
01:03:54.290 --> 01:03:55.050
will
01:03:55.050 --> 01:03:55.690
should be in a
01:03:55.690 --> 01:03:56.350
format right
01:03:56.350 --> 01:03:56.890
that format
01:03:56.890 --> 01:03:57.290
is called
01:03:57.290 --> 01:03:57.850
json format
01:04:00.070 --> 01:04:01.050
and you have
01:04:02.730 --> 01:04:03.630
json inside
01:04:03.630 --> 01:04:04.010
a json
01:04:04.530 --> 01:04:05.650
so let's say
01:04:05.650 --> 01:04:06.870
multi-layer
01:04:06.870 --> 01:04:07.090
key
01:04:11.510 --> 01:04:12.570
and you can
01:04:12.570 --> 01:04:12.910
have
01:04:12.910 --> 01:04:13.330
another
01:04:13.330 --> 01:04:14.130
layer of
01:04:15.650 --> 01:04:16.330
response
01:04:16.330 --> 01:04:16.690
over here
01:04:17.590 --> 01:04:18.270
and
01:04:18.270 --> 01:04:18.630
and each
01:04:18.630 --> 01:04:19.070
and every
01:04:19.070 --> 01:04:19.310
layer
01:04:19.310 --> 01:04:19.730
should be
01:04:19.730 --> 01:04:20.010
separated
01:04:20.010 --> 01:04:21.130
with a
01:04:21.130 --> 01:04:21.370
comma
01:04:21.370 --> 01:04:22.110
over here
01:04:22.110 --> 01:04:22.890
and you
01:04:22.890 --> 01:04:23.350
can also
01:04:23.350 --> 01:04:23.710
have
01:04:23.710 --> 01:04:24.210
arrays also
01:04:24.730 --> 01:04:27.650
so let's say
01:04:32.310 --> 01:04:33.150
and you
01:04:33.150 --> 01:04:33.750
can provide
01:04:36.830 --> 01:04:37.570
comma
01:04:37.570 --> 01:04:38.270
separated values
01:04:38.270 --> 01:04:39.230
inside the array
01:04:41.270 --> 01:04:42.410
so that's
01:04:42.410 --> 01:04:42.570
how it
01:04:42.570 --> 01:04:43.230
actually works
01:04:43.230 --> 01:04:44.490
so it is
01:04:44.490 --> 01:04:45.290
json format
01:04:45.290 --> 01:04:45.790
not
01:04:45.790 --> 01:04:46.610
ml format
01:04:46.610 --> 01:04:47.090
but
01:04:47.870 --> 01:04:48.850
in order to
01:04:49.650 --> 01:04:50.110
create
01:04:50.110 --> 01:04:50.770
json
01:04:50.770 --> 01:04:51.390
responses
01:04:51.390 --> 01:04:52.050
or utilize
01:04:52.050 --> 01:04:52.950
the json responses
01:04:52.950 --> 01:04:54.070
you have to
01:04:54.070 --> 01:04:54.290
create
01:04:55.250 --> 01:04:55.990
specification
01:04:55.990 --> 01:04:56.530
an API
01:04:56.530 --> 01:04:57.290
specification
01:04:57.290 --> 01:04:58.010
use of
01:04:58.010 --> 01:04:58.290
API
01:04:58.290 --> 01:04:58.950
specification
01:04:59.950 --> 01:05:00.690
that
01:05:00.690 --> 01:05:01.550
way to
01:05:01.550 --> 01:05:01.750
create
01:05:01.750 --> 01:05:02.110
a
01:05:02.110 --> 01:05:02.570
specification
01:05:02.570 --> 01:05:03.190
is with
01:05:03.190 --> 01:05:03.390
the help
01:05:03.390 --> 01:05:03.630
of
01:05:03.630 --> 01:05:03.910
ml
01:05:04.610 --> 01:05:05.270
so
01:05:05.650 --> 01:05:06.570
when i say
01:05:06.570 --> 01:05:06.970
ml
01:05:06.970 --> 01:05:07.790
it's
01:05:07.790 --> 01:05:08.570
basically
01:05:09.810 --> 01:05:10.330
format
01:05:10.330 --> 01:05:10.710
of
01:05:10.710 --> 01:05:11.010
data
01:05:15.970 --> 01:05:16.370
so
01:05:16.890 --> 01:05:17.490
ml
01:05:17.490 --> 01:05:17.890
basically
01:05:17.890 --> 01:05:18.410
uses
01:05:19.750 --> 01:05:20.670
white
01:05:20.670 --> 01:05:21.330
space
01:05:21.330 --> 01:05:21.650
sensitive
01:05:22.770 --> 01:05:22.930
data
01:05:23.690 --> 01:05:24.170
mechanism
01:05:24.170 --> 01:05:24.470
i mean
01:05:24.470 --> 01:05:24.750
data
01:05:24.750 --> 01:05:25.110
implementation
01:05:25.110 --> 01:05:25.570
mechanism
01:05:25.570 --> 01:05:26.290
so
01:05:26.290 --> 01:05:26.850
let's say
01:05:26.850 --> 01:05:27.730
you have
01:05:27.730 --> 01:05:28.270
key
01:05:28.850 --> 01:05:29.590
and
01:05:29.590 --> 01:05:30.430
it
01:05:30.430 --> 01:05:31.070
should be
01:05:31.070 --> 01:05:31.390
separated
01:05:31.390 --> 01:05:31.850
with a
01:05:31.850 --> 01:05:32.250
space
01:05:32.250 --> 01:05:32.610
after
01:05:32.610 --> 01:05:32.990
colon
01:05:33.490 --> 01:05:34.390
and then
01:05:34.390 --> 01:05:34.890
value
01:05:35.650 --> 01:05:36.410
don't have
01:05:36.410 --> 01:05:37.130
the burden to
01:05:37.130 --> 01:05:37.790
maintain all
01:05:37.790 --> 01:05:37.810
these
01:05:38.830 --> 01:05:39.530
curly braces
01:05:39.530 --> 01:05:40.110
and
01:05:40.110 --> 01:05:40.430
codes
01:05:40.430 --> 01:05:40.930
and all
01:05:41.490 --> 01:05:41.970
which is
01:05:42.990 --> 01:05:43.350
very
01:05:43.350 --> 01:05:43.750
tiresome
01:05:43.750 --> 01:05:44.230
to type
01:05:44.230 --> 01:05:44.790
and tiresome
01:05:44.790 --> 01:05:45.330
to maintain
01:05:45.330 --> 01:05:46.150
so
01:05:46.150 --> 01:05:46.850
this ml is
01:05:47.570 --> 01:05:47.990
easy
01:05:47.990 --> 01:05:48.670
for
01:05:48.670 --> 01:05:48.990
humans
01:05:48.990 --> 01:05:49.830
to understand
01:05:49.830 --> 01:05:50.330
and
01:05:50.330 --> 01:05:50.990
act upon
01:05:51.810 --> 01:05:52.830
and similarly
01:05:52.830 --> 01:05:53.450
you have
01:05:53.450 --> 01:05:53.870
this
01:05:53.870 --> 01:05:54.630
key to
01:05:54.630 --> 01:05:55.170
and
01:05:55.170 --> 01:05:55.810
multi-layered
01:05:58.510 --> 01:05:59.030
ml
01:05:59.030 --> 01:05:59.570
based
01:05:59.570 --> 01:06:00.390
keys
01:06:00.930 --> 01:06:01.230
so
01:06:01.230 --> 01:06:01.790
for this
01:06:01.790 --> 01:06:02.210
multi-layered
01:06:03.070 --> 01:06:03.610
ml based
01:06:03.610 --> 01:06:04.150
keys
01:06:04.850 --> 01:06:05.290
front
01:06:05.290 --> 01:06:06.010
space should be
01:06:06.950 --> 01:06:07.630
there
01:06:10.750 --> 01:06:11.430
so
01:06:14.750 --> 01:06:16.230
so that's how this works
01:06:16.230 --> 01:06:17.070
and
01:06:17.070 --> 01:06:17.890
for
01:06:17.890 --> 01:06:18.390
arrays
01:06:18.390 --> 01:06:19.630
we have separate syntax
01:06:19.630 --> 01:06:20.410
in yaml
01:06:20.410 --> 01:06:22.150
so let's say
01:06:25.970 --> 01:06:27.310
this is a pipe
01:06:27.310 --> 01:06:28.670
which is on top of enter
01:06:29.810 --> 01:06:30.490
and
01:06:30.490 --> 01:06:31.870
we can just provide
01:06:31.870 --> 01:06:32.870
a list here
01:06:32.870 --> 01:06:33.510
a multi-line
01:06:33.510 --> 01:06:34.210
command also
01:06:34.210 --> 01:06:34.990
but
01:06:34.990 --> 01:06:35.790
yaml
01:06:35.790 --> 01:06:36.570
doesn't
01:06:36.570 --> 01:06:37.190
provide you
01:06:37.190 --> 01:06:37.750
support for
01:06:37.750 --> 01:06:38.070
multi-line
01:06:38.070 --> 01:06:38.410
commands
01:06:39.090 --> 01:06:40.110
in order to
01:06:40.110 --> 01:06:40.970
tell yaml that
01:06:41.970 --> 01:06:42.790
I do have an
01:06:42.790 --> 01:06:43.910
array over here
01:06:43.910 --> 01:06:44.290
and
01:06:44.290 --> 01:06:45.050
I wanted to
01:06:45.050 --> 01:06:45.730
provide multiple
01:06:47.290 --> 01:06:48.690
number of
01:06:48.690 --> 01:06:49.810
layers over here
01:06:49.810 --> 01:06:50.570
I mean multiple
01:06:50.570 --> 01:06:50.850
number of
01:06:51.970 --> 01:06:52.250
keys
01:06:52.250 --> 01:06:52.850
or values
01:06:52.850 --> 01:06:53.590
over here
01:06:53.590 --> 01:06:53.890
so that
01:06:54.570 --> 01:06:54.990
yaml
01:06:54.990 --> 01:06:55.650
understands that
01:06:56.270 --> 01:06:57.210
this pipe symbol
01:06:57.210 --> 01:06:58.410
responsible for that
01:06:58.410 --> 01:06:59.310
so you will be
01:06:59.310 --> 01:06:59.870
providing
01:07:01.630 --> 01:07:02.950
value one
01:07:02.950 --> 01:07:03.670
and then
01:07:05.010 --> 01:07:06.250
so the white space
01:07:06.250 --> 01:07:06.610
should be
01:07:06.610 --> 01:07:07.530
most important here
01:07:07.530 --> 01:07:08.310
so that
01:07:08.310 --> 01:07:09.390
it understands
01:07:09.390 --> 01:07:10.270
where this array
01:07:10.270 --> 01:07:10.710
stops
01:07:10.710 --> 01:07:11.770
and
01:07:11.770 --> 01:07:12.950
what is the next
01:07:15.150 --> 01:07:16.070
key over here
01:07:21.270 --> 01:07:22.290
so you can see
01:07:22.290 --> 01:07:22.430
right
01:07:22.430 --> 01:07:23.070
if the
01:07:23.070 --> 01:07:23.550
the differences
01:07:23.550 --> 01:07:24.150
between these
01:07:25.850 --> 01:07:26.750
white space
01:07:26.750 --> 01:07:27.230
and
01:07:27.230 --> 01:07:28.050
yeah key three
01:07:28.050 --> 01:07:29.250
and this is
01:07:29.250 --> 01:07:29.870
one of the way
01:07:29.870 --> 01:07:30.530
where you provide
01:07:30.530 --> 01:07:31.030
an array
01:07:31.030 --> 01:07:32.230
and the other way
01:07:32.230 --> 01:07:32.730
is to
01:07:34.750 --> 01:07:35.550
have
01:07:36.230 --> 01:07:36.750
whole
01:07:36.750 --> 01:07:37.770
like
01:07:37.770 --> 01:07:38.330
minor symbols
01:07:38.330 --> 01:07:38.910
basically
01:07:41.950 --> 01:07:42.950
this is
01:07:42.950 --> 01:07:43.450
more
01:07:43.450 --> 01:07:44.390
user-friendly one
01:07:47.750 --> 01:07:49.050
key three
01:07:49.050 --> 01:07:49.990
et cetera
01:07:49.990 --> 01:07:51.190
so that's how
01:07:51.190 --> 01:07:51.650
a basic
01:07:51.650 --> 01:07:52.650
ML syntax works
01:07:52.650 --> 01:07:53.730
maybe while
01:07:53.730 --> 01:07:54.710
we go on
01:07:55.490 --> 01:07:56.010
while
01:07:56.010 --> 01:07:56.510
developing
01:07:56.510 --> 01:07:57.190
this yaml
01:07:57.190 --> 01:07:57.410
or
01:07:57.410 --> 01:07:58.070
raml-based
01:07:58.950 --> 01:07:59.390
things
01:07:59.390 --> 01:08:00.190
it will be
01:08:00.190 --> 01:08:01.230
easy for us to
01:08:02.310 --> 01:08:02.990
get things
01:08:02.990 --> 01:08:03.610
going on
01:08:04.570 --> 01:08:06.470
so that's how
01:08:06.470 --> 01:08:07.070
it uses
01:08:07.070 --> 01:08:07.550
it so basically
01:08:07.550 --> 01:08:07.830
it uses
01:08:08.830 --> 01:08:09.750
yaml-based
01:08:10.330 --> 01:08:11.130
mechanisms
01:08:12.150 --> 01:08:14.070
and apart from that
01:08:14.710 --> 01:08:15.190
how this
01:08:16.670 --> 01:08:17.830
API design
01:08:17.830 --> 01:08:18.650
will be doing
01:08:19.810 --> 01:08:20.650
so
01:08:21.670 --> 01:08:22.790
if you understand
01:08:22.790 --> 01:08:23.610
REST APIs
01:08:23.610 --> 01:08:24.650
so basically
01:08:24.650 --> 01:08:25.310
REST APIs
01:08:25.310 --> 01:08:25.710
provides
01:08:25.710 --> 01:08:27.810
as I have already told you
01:08:27.810 --> 01:08:28.970
this REST APIs
01:08:28.970 --> 01:08:29.890
basically
01:08:29.890 --> 01:08:30.630
whatever
01:08:33.130 --> 01:08:34.870
the state of system
01:08:34.870 --> 01:08:35.630
before
01:08:35.630 --> 01:08:36.550
calling an API
01:08:36.550 --> 01:08:38.210
and the state of system
01:08:38.210 --> 01:08:39.210
after the calling an API
01:08:39.210 --> 01:08:40.090
it should be same
01:08:40.090 --> 01:08:41.630
that is the hard rule
01:08:41.630 --> 01:08:43.030
for this REST APIs
01:08:43.030 --> 01:08:43.910
basically
01:08:43.910 --> 01:08:45.170
so we wanted to
01:08:45.950 --> 01:08:46.590
implement
01:08:46.590 --> 01:08:47.870
APIs
01:08:47.870 --> 01:08:50.250
that is like
01:08:50.870 --> 01:08:52.030
binding to that
01:08:52.030 --> 01:08:52.670
REST API
01:08:52.670 --> 01:08:53.390
specifications
01:08:53.390 --> 01:08:54.990
so that's first and foremost
01:08:54.990 --> 01:08:55.870
important thing
01:08:55.870 --> 01:08:56.950
in those REST APIs
01:08:56.950 --> 01:08:57.630
we have
01:08:57.630 --> 01:08:58.250
resources
01:08:58.250 --> 01:08:58.870
methods
01:08:58.870 --> 01:08:59.410
requests
01:08:59.410 --> 01:09:00.450
and response schemas
01:09:00.450 --> 01:09:01.930
we'll be going over them
01:09:01.930 --> 01:09:02.430
right now
01:09:02.430 --> 01:09:03.250
so it requires
01:09:03.970 --> 01:09:04.970
much more deep dive
01:09:06.270 --> 01:09:06.830
into
01:09:06.830 --> 01:09:08.330
API based implementations
01:09:08.330 --> 01:09:08.450
so
01:09:09.730 --> 01:09:11.290
feel free to
01:09:11.290 --> 01:09:11.890
stop me
01:09:12.690 --> 01:09:13.650
if you don't understand
01:09:17.410 --> 01:09:17.970
and
01:09:17.970 --> 01:09:18.530
and method
01:09:19.310 --> 01:09:20.350
so method is
01:09:20.350 --> 01:09:20.850
basically like
01:09:22.070 --> 01:09:23.170
an REST API method
01:09:23.170 --> 01:09:24.530
so it has
01:09:24.530 --> 01:09:25.330
as I have already told
01:09:25.330 --> 01:09:26.350
these are REST API methods
01:09:26.350 --> 01:09:27.290
you can just
01:09:27.290 --> 01:09:28.490
use this method
01:09:28.490 --> 01:09:30.430
or fetch things
01:09:30.450 --> 01:09:31.910
with the help of API
01:09:31.910 --> 01:09:33.830
so that user can understand
01:09:33.830 --> 01:09:35.130
what this API does
01:09:35.130 --> 01:09:35.490
whether
01:09:36.270 --> 01:09:37.970
a user needs to push
01:09:37.970 --> 01:09:38.450
data into
01:09:39.270 --> 01:09:39.870
server
01:09:39.870 --> 01:09:40.850
with the help of
01:09:40.850 --> 01:09:41.370
post API
01:09:41.370 --> 01:09:42.230
or put API
01:09:42.230 --> 01:09:44.010
or user wants to delete
01:09:44.010 --> 01:09:44.930
a specific entry
01:09:44.930 --> 01:09:45.690
inside the database
01:09:45.690 --> 01:09:46.390
with the help of
01:09:46.390 --> 01:09:47.270
delete API
01:09:47.270 --> 01:09:48.310
patch API
01:09:48.310 --> 01:09:49.210
basically does
01:09:49.210 --> 01:09:50.890
a modification of a resource
01:09:50.890 --> 01:09:52.510
inside the database system
01:09:52.510 --> 01:09:54.270
so that's what
01:09:54.270 --> 01:09:56.330
patch API is responsible for
01:09:56.330 --> 01:09:57.510
and get API
01:09:57.510 --> 01:09:58.610
is like responsible for
01:10:01.110 --> 01:10:02.230
getting the data
01:10:02.230 --> 01:10:02.530
from the
01:10:03.710 --> 01:10:05.070
actual system
01:10:05.070 --> 01:10:06.570
webinar system
01:10:06.570 --> 01:10:08.390
it's database system
01:10:08.390 --> 01:10:08.850
which is
01:10:09.970 --> 01:10:10.290
sits on
01:10:11.350 --> 01:10:12.770
the end most layer
01:10:12.770 --> 01:10:13.910
of the
01:10:13.910 --> 01:10:15.570
MuleSoft implementations
01:10:15.570 --> 01:10:16.530
for MuleSoft
01:10:16.530 --> 01:10:17.230
we will be interacting
01:10:17.230 --> 01:10:17.890
with the database
01:10:18.450 --> 01:10:19.030
okay
01:10:19.030 --> 01:10:20.210
so we'll be pushing these
01:10:23.230 --> 01:10:23.910
methods
01:10:23.910 --> 01:10:24.670
API methods
01:10:24.670 --> 01:10:26.270
to business logic layer
01:10:26.270 --> 01:10:26.770
which
01:10:27.490 --> 01:10:29.030
takes care of by MuleSoft
01:10:29.030 --> 01:10:29.570
and then
01:10:29.830 --> 01:10:30.830
at the end
01:10:30.830 --> 01:10:32.150
the database is the one
01:10:32.150 --> 01:10:33.650
which persistently stores
01:10:33.650 --> 01:10:34.670
all the data
01:10:34.670 --> 01:10:35.510
and
01:10:35.510 --> 01:10:36.110
serves us
01:10:36.110 --> 01:10:36.470
basically
01:10:37.110 --> 01:10:38.630
so that's how it works
01:10:38.630 --> 01:10:39.190
that is
01:10:40.150 --> 01:10:41.090
API method
01:10:41.090 --> 01:10:41.670
basically
01:10:43.190 --> 01:10:43.830
and
01:10:43.830 --> 01:10:45.370
we wanted to provide
01:10:45.370 --> 01:10:46.150
a payload
01:10:46.150 --> 01:10:47.030
to a method right
01:10:47.030 --> 01:10:48.270
so let's say
01:10:48.270 --> 01:10:49.350
a forget request
01:10:49.350 --> 01:10:49.970
you don't need to
01:10:49.970 --> 01:10:50.670
provide a payload
01:10:50.670 --> 01:10:51.810
but for
01:10:51.810 --> 01:10:52.310
let's say
01:10:52.310 --> 01:10:53.030
patch request
01:10:53.030 --> 01:10:53.990
or post request
01:10:53.990 --> 01:10:54.670
need to provide
01:10:54.670 --> 01:10:55.530
some kind of payload
01:10:55.530 --> 01:10:55.910
for that
01:10:56.690 --> 01:10:57.190
request
01:10:57.190 --> 01:10:58.770
so what this payload
01:10:58.770 --> 01:10:59.810
exactly is
01:11:00.470 --> 01:11:00.950
that
01:11:03.450 --> 01:11:03.930
so
01:11:03.930 --> 01:11:04.530
let's say
01:11:04.530 --> 01:11:05.610
you wanted to have
01:11:05.610 --> 01:11:06.650
I mean you have created
01:11:06.650 --> 01:11:07.630
a product implementation
01:11:07.630 --> 01:11:09.190
and for this product
01:11:09.190 --> 01:11:10.550
raml implementation
01:11:11.790 --> 01:11:12.870
you wanted to create
01:11:12.870 --> 01:11:13.470
a new product
01:11:13.470 --> 01:11:14.210
for your catalog
01:11:15.110 --> 01:11:15.590
and
01:11:15.590 --> 01:11:16.470
you don't want to
01:11:16.470 --> 01:11:17.510
go to API
01:11:17.510 --> 01:11:17.870
sorry
01:11:17.870 --> 01:11:18.450
you don't want to
01:11:18.450 --> 01:11:19.110
go to database
01:11:19.110 --> 01:11:19.830
and
01:11:19.830 --> 01:11:21.550
load database query languages
01:11:21.550 --> 01:11:23.070
and interact with the database
01:11:23.070 --> 01:11:24.430
you just kind of
01:11:24.430 --> 01:11:25.130
created
01:11:26.070 --> 01:11:26.550
API
01:11:26.550 --> 01:11:27.590
and provided that
01:11:27.590 --> 01:11:28.310
to your consumers
01:11:28.810 --> 01:11:29.290
and
01:11:29.290 --> 01:11:30.870
whatever the product catalog
01:11:30.870 --> 01:11:31.830
let's say
01:11:31.830 --> 01:11:32.750
details
01:11:33.730 --> 01:11:33.770
regarding
01:11:34.850 --> 01:11:35.830
product like
01:11:35.830 --> 01:11:37.010
the product name
01:11:38.450 --> 01:11:39.810
if you can see here
01:11:39.810 --> 01:11:40.430
we'll be using
01:11:40.430 --> 01:11:41.370
JSON syntax over here
01:11:44.690 --> 01:11:47.150
so that's how
01:11:47.150 --> 01:11:48.210
API specification
01:11:48.210 --> 01:11:49.210
works basically
01:11:49.210 --> 01:11:50.330
it describes us
01:11:50.950 --> 01:11:52.010
what are the fields
01:11:52.010 --> 01:11:53.330
that you have to provide
01:11:53.850 --> 01:11:55.050
so API specification
01:11:55.050 --> 01:11:55.490
provides
01:11:55.490 --> 01:11:56.330
what are the fields
01:11:56.330 --> 01:11:57.190
that you need to provide
01:11:57.190 --> 01:11:58.070
inside the payload
01:11:58.070 --> 01:11:59.470
here inside the payload
01:11:59.470 --> 01:12:00.310
I provided
01:12:00.310 --> 01:12:00.990
product name
01:12:00.990 --> 01:12:01.890
that is
01:12:01.890 --> 01:12:02.730
the compulsory
01:12:02.730 --> 01:12:03.870
or the mandatory field
01:12:03.870 --> 01:12:04.630
that you have to provide
01:12:04.630 --> 01:12:05.430
you can also
01:12:05.430 --> 01:12:06.470
design your
01:12:06.470 --> 01:12:06.950
API
01:12:06.950 --> 01:12:07.770
you know
01:12:07.770 --> 01:12:08.390
to provide you
01:12:08.910 --> 01:12:09.790
I mean
01:12:09.790 --> 01:12:10.850
so that you can
01:12:10.850 --> 01:12:11.330
you know
01:12:11.330 --> 01:12:11.990
have
01:12:11.990 --> 01:12:12.390
optional
01:12:13.130 --> 01:12:13.750
fields
01:12:13.750 --> 01:12:14.750
inside your application
01:12:14.750 --> 01:12:15.030
and all
01:12:16.810 --> 01:12:17.430
so
01:12:17.430 --> 01:12:18.390
optional field one
01:12:28.160 --> 01:12:29.500
at the end
01:12:29.500 --> 01:12:30.120
we'll be having
01:12:30.120 --> 01:12:30.800
a serialization
01:12:30.800 --> 01:12:31.660
closing
01:12:31.660 --> 01:12:32.340
syntax
01:12:33.440 --> 01:12:34.340
which is
01:12:34.340 --> 01:12:34.900
the flower bracket
01:12:34.900 --> 01:12:36.200
so this is
01:12:36.200 --> 01:12:36.580
a payload
01:12:36.580 --> 01:12:37.760
so we'll be passing
01:12:37.760 --> 01:12:38.420
this specific
01:12:38.420 --> 01:12:38.780
payload
01:12:38.780 --> 01:12:39.860
to the API
01:12:39.860 --> 01:12:41.180
for post request
01:12:41.180 --> 01:12:41.700
or
01:12:41.700 --> 01:12:42.840
for delete request
01:12:42.840 --> 01:12:43.000
or
01:12:43.800 --> 01:12:44.600
patch request
01:12:44.600 --> 01:12:46.060
so that's how it works
01:12:46.060 --> 01:12:46.600
basically
01:12:46.600 --> 01:12:47.560
when you wanted to
01:12:47.560 --> 01:12:48.120
create a product
01:12:48.120 --> 01:12:49.560
you will be passing this
01:12:49.560 --> 01:12:50.700
you in the sense
01:12:50.700 --> 01:12:51.400
end user
01:12:51.400 --> 01:12:52.160
but
01:12:52.160 --> 01:12:53.280
what is your task
01:12:53.280 --> 01:12:53.840
for here
01:12:53.840 --> 01:12:54.880
wanted to design
01:12:55.460 --> 01:12:56.020
how
01:12:56.020 --> 01:12:56.660
a payload
01:12:56.660 --> 01:12:57.500
should look like
01:12:57.500 --> 01:12:58.480
so that
01:12:58.480 --> 01:12:59.420
is the
01:12:59.420 --> 01:13:00.160
end goal
01:13:00.160 --> 01:13:01.300
of us to
01:13:01.300 --> 01:13:01.680
understand
01:13:01.680 --> 01:13:02.740
how this all works
01:13:02.740 --> 01:13:03.520
so basically
01:13:03.520 --> 01:13:04.560
we will be designing
01:13:05.320 --> 01:13:06.740
how a method should be
01:13:06.740 --> 01:13:07.960
how a request should be
01:13:07.960 --> 01:13:09.220
how a payload should be
01:13:09.220 --> 01:13:10.820
how a response should be
01:13:10.820 --> 01:13:12.260
that's how
01:13:12.260 --> 01:13:13.160
we'll be designing
01:13:14.180 --> 01:13:15.300
API specification
01:13:16.120 --> 01:13:16.400
and
01:13:16.400 --> 01:13:17.740
when it comes to
01:13:18.520 --> 01:13:19.200
headers
01:13:20.080 --> 01:13:20.760
so
01:13:20.760 --> 01:13:22.380
let's say
01:13:23.080 --> 01:13:24.100
you have implemented
01:13:24.100 --> 01:13:24.780
an authorization
01:13:24.780 --> 01:13:25.300
mechanism
01:13:25.300 --> 01:13:26.220
for your application
01:13:26.220 --> 01:13:27.240
and this
01:13:27.240 --> 01:13:28.020
authorization mechanism
01:13:28.020 --> 01:13:28.420
uses
01:13:28.420 --> 01:13:29.000
OAuth 2
01:13:29.600 --> 01:13:30.680
as a
01:13:30.680 --> 01:13:31.000
standard
01:13:31.000 --> 01:13:31.880
authorization mechanism
01:13:31.880 --> 01:13:32.440
and you have
01:13:32.440 --> 01:13:33.000
access control
01:13:33.620 --> 01:13:34.400
role-based
01:13:34.400 --> 01:13:35.180
access control
01:13:36.060 --> 01:13:36.740
and
01:13:36.740 --> 01:13:37.600
private keys
01:13:37.600 --> 01:13:38.140
public keys
01:13:38.140 --> 01:13:38.920
mechanisms
01:13:39.900 --> 01:13:40.580
and
01:13:40.580 --> 01:13:41.300
JWT tokens
01:13:41.300 --> 01:13:42.000
as one of the
01:13:42.000 --> 01:13:42.380
mechanism
01:13:42.380 --> 01:13:43.560
so all these things
01:13:44.360 --> 01:13:45.040
whenever
01:13:45.040 --> 01:13:45.500
let's say
01:13:45.500 --> 01:13:46.000
a person
01:13:46.000 --> 01:13:46.580
makes a request
01:13:46.580 --> 01:13:47.640
to the
01:13:47.640 --> 01:13:47.960
client
01:13:48.680 --> 01:13:49.500
a client
01:13:49.500 --> 01:13:50.220
makes a request
01:13:50.220 --> 01:13:51.060
to the server
01:13:51.060 --> 01:13:52.260
he needs to
01:13:52.260 --> 01:13:52.680
pass his
01:13:53.280 --> 01:13:54.460
he needs to
01:13:54.460 --> 01:13:54.940
pass his
01:13:54.940 --> 01:13:55.680
user identification
01:13:55.680 --> 01:13:56.740
so that
01:13:56.740 --> 01:13:57.360
the
01:13:57.360 --> 01:13:57.720
server can
01:13:58.520 --> 01:13:59.800
make sure
01:13:59.800 --> 01:14:00.040
that
01:14:00.940 --> 01:14:01.720
to validate him
01:14:03.800 --> 01:14:04.880
to understand
01:14:04.880 --> 01:14:06.420
who he is
01:14:06.420 --> 01:14:07.120
basically
01:14:07.880 --> 01:14:08.560
so in those
01:14:08.560 --> 01:14:09.040
scenarios
01:14:09.040 --> 01:14:09.960
we can't just
01:14:09.960 --> 01:14:10.340
provide them
01:14:10.340 --> 01:14:11.060
as a payload
01:14:11.060 --> 01:14:12.100
because payload
01:14:12.100 --> 01:14:13.000
is
01:14:13.000 --> 01:14:13.320
basically
01:14:13.880 --> 01:14:14.900
can be
01:14:15.720 --> 01:14:17.080
they should be
01:14:17.080 --> 01:14:17.740
transmitted over
01:14:17.740 --> 01:14:18.960
network across
01:14:18.960 --> 01:14:19.480
different
01:14:19.480 --> 01:14:20.360
backbone layers
01:14:20.360 --> 01:14:21.040
or
01:14:21.040 --> 01:14:21.740
backbone networks
01:14:21.740 --> 01:14:22.340
where users
01:14:22.340 --> 01:14:23.180
doesn't have any
01:14:23.180 --> 01:14:23.720
control over
01:14:23.720 --> 01:14:24.480
so
01:14:24.480 --> 01:14:24.720
headers
01:14:24.720 --> 01:14:25.480
comes into picture
01:14:25.480 --> 01:14:26.040
for that
01:14:26.040 --> 01:14:26.800
specific scenarios
01:14:26.800 --> 01:14:27.640
so basically
01:14:27.640 --> 01:14:27.960
headers
01:14:27.960 --> 01:14:28.820
consists of
01:14:28.820 --> 01:14:29.440
all these
01:14:29.440 --> 01:14:30.400
sensitive data
01:14:30.400 --> 01:14:31.120
like the
01:14:31.120 --> 01:14:31.580
authentication
01:14:31.580 --> 01:14:32.460
and authorizations
01:14:34.500 --> 01:14:35.220
or
01:14:35.220 --> 01:14:36.160
implementations
01:14:36.160 --> 01:14:37.220
or
01:14:37.220 --> 01:14:37.840
public and
01:14:37.840 --> 01:14:38.800
private keys
01:14:42.300 --> 01:14:43.020
or
01:14:43.020 --> 01:14:44.780
let's say
01:14:44.780 --> 01:14:45.720
access control
01:14:45.720 --> 01:14:46.140
mechanism
01:14:46.140 --> 01:14:47.100
like access keys
01:14:47.100 --> 01:14:47.620
or
01:14:47.620 --> 01:14:48.620
refresh tokens
01:14:49.780 --> 01:14:50.380
or
01:14:50.380 --> 01:14:51.240
JWT tokens
01:14:51.240 --> 01:14:52.400
so these are
01:14:52.400 --> 01:14:52.740
a couple of
01:14:54.420 --> 01:14:55.780
ways to interact
01:14:55.780 --> 01:14:56.380
or
01:14:56.380 --> 01:14:56.780
ways to
01:14:56.780 --> 01:14:57.060
authenticate
01:14:58.020 --> 01:14:58.620
between
01:14:59.720 --> 01:15:00.320
different
01:15:00.320 --> 01:15:00.760
different
01:15:00.760 --> 01:15:01.080
API
01:15:01.080 --> 01:15:01.660
implementations
01:15:01.660 --> 01:15:01.960
okay
01:15:01.960 --> 01:15:02.920
so that's how
01:15:02.920 --> 01:15:03.360
the headers
01:15:03.360 --> 01:15:03.720
work
01:15:03.720 --> 01:15:04.700
and
01:15:04.700 --> 01:15:05.120
user can
01:15:05.120 --> 01:15:05.380
also
01:15:05.380 --> 01:15:05.700
create
01:15:05.700 --> 01:15:06.320
custom headers
01:15:06.320 --> 01:15:06.820
also
01:15:06.820 --> 01:15:07.800
so what
01:15:07.800 --> 01:15:08.200
is the
01:15:08.200 --> 01:15:08.580
structure of
01:15:08.580 --> 01:15:09.140
a custom header
01:15:09.140 --> 01:15:09.660
you wanted
01:15:09.660 --> 01:15:10.320
to describe
01:15:10.320 --> 01:15:10.900
that
01:15:10.900 --> 01:15:11.300
with the
01:15:11.300 --> 01:15:11.680
help of
01:15:11.680 --> 01:15:11.840
your
01:15:11.840 --> 01:15:12.680
mule soft
01:15:12.680 --> 01:15:13.360
raml
01:15:13.360 --> 01:15:13.920
implementation
01:15:13.920 --> 01:15:15.040
so that's
01:15:15.040 --> 01:15:15.380
how
01:15:15.380 --> 01:15:16.100
you will be
01:15:16.100 --> 01:15:16.500
defining
01:15:16.500 --> 01:15:17.380
what are
01:15:17.380 --> 01:15:17.600
the
01:15:17.620 --> 01:15:18.620
required
01:15:18.620 --> 01:15:19.020
headers
01:15:19.020 --> 01:15:19.600
and
01:15:19.600 --> 01:15:20.120
what is the
01:15:20.120 --> 01:15:20.460
syntax
01:15:20.460 --> 01:15:20.920
of those
01:15:20.920 --> 01:15:21.380
headers
01:15:21.380 --> 01:15:22.400
you wanted
01:15:22.400 --> 01:15:22.960
to pass
01:15:22.960 --> 01:15:23.580
and all
01:15:23.580 --> 01:15:24.440
so that's
01:15:24.440 --> 01:15:24.720
how it
01:15:24.720 --> 01:15:24.900
works
01:15:24.900 --> 01:15:25.520
basically
01:15:27.100 --> 01:15:27.700
okay
01:15:27.700 --> 01:15:28.120
yeah
01:15:28.120 --> 01:15:28.880
and then
01:15:28.880 --> 01:15:29.500
the response
01:15:29.500 --> 01:15:29.960
schemas
01:15:29.960 --> 01:15:30.480
this is the
01:15:30.480 --> 01:15:31.040
one of the
01:15:31.040 --> 01:15:31.260
most
01:15:31.260 --> 01:15:31.720
important
01:15:31.720 --> 01:15:31.860
thing
01:15:32.780 --> 01:15:33.560
that we
01:15:33.560 --> 01:15:34.440
wanted to
01:15:34.440 --> 01:15:34.860
understand
01:15:34.860 --> 01:15:35.060
about
01:15:35.900 --> 01:15:36.500
implementation
01:15:36.500 --> 01:15:37.380
let's say
01:15:37.380 --> 01:15:38.160
I'll be just
01:15:38.160 --> 01:15:40.420
pasting you
01:15:40.420 --> 01:15:41.380
implementation
01:15:41.380 --> 01:15:41.940
example
01:15:41.940 --> 01:15:42.480
which is
01:15:43.420 --> 01:15:44.260
till now
01:15:44.260 --> 01:15:44.800
I've described
01:15:44.800 --> 01:15:45.200
you the
01:15:45.200 --> 01:15:45.600
response
01:15:45.600 --> 01:15:45.900
response
01:15:45.900 --> 01:15:46.260
response
01:15:46.260 --> 01:15:46.700
and write
01:15:46.700 --> 01:15:47.200
so what
01:15:47.200 --> 01:15:47.420
exactly
01:15:47.420 --> 01:15:47.660
is this
01:15:47.660 --> 01:15:48.000
response
01:15:48.700 --> 01:15:48.980
so if
01:15:48.980 --> 01:15:49.420
you go
01:15:49.420 --> 01:15:49.920
here
01:15:49.920 --> 01:15:50.700
this is
01:15:50.700 --> 01:15:51.020
by the way
01:15:51.020 --> 01:15:51.340
this is
01:15:51.340 --> 01:15:52.200
a sample
01:15:52.200 --> 01:15:53.060
or raml
01:15:53.060 --> 01:15:53.200
file
01:15:53.200 --> 01:15:53.800
okay
01:15:53.800 --> 01:15:55.200
so basically
01:15:55.200 --> 01:15:55.920
it consists
01:15:55.920 --> 01:15:56.380
of
01:15:57.060 --> 01:15:57.960
what is
01:15:57.960 --> 01:15:59.040
the
01:15:59.040 --> 01:15:59.700
actual end
01:15:59.700 --> 01:15:59.980
users
01:15:59.980 --> 01:16:00.640
that this
01:16:00.640 --> 01:16:01.420
has
01:16:02.140 --> 01:16:02.500
for this
01:16:02.500 --> 01:16:03.300
we have
01:16:03.300 --> 01:16:03.640
retail
01:16:03.640 --> 01:16:04.020
products
01:16:04.020 --> 01:16:04.540
that we
01:16:04.540 --> 01:16:04.920
have
01:16:04.920 --> 01:16:05.340
like the
01:16:05.340 --> 01:16:05.760
list of
01:16:05.760 --> 01:16:06.220
products
01:16:06.220 --> 01:16:06.920
a specific
01:16:06.920 --> 01:16:07.260
catalog
01:16:07.260 --> 01:16:07.680
has
01:16:07.680 --> 01:16:08.420
and the
01:16:08.420 --> 01:16:08.860
retail tags
01:16:08.860 --> 01:16:09.080
on
01:16:09.080 --> 01:16:10.200
as well
01:16:10.940 --> 01:16:11.240
so
01:16:11.240 --> 01:16:11.620
first
01:16:11.620 --> 01:16:12.100
let's just
01:16:12.100 --> 01:16:12.420
go through
01:16:12.420 --> 01:16:12.640
this
01:16:12.640 --> 01:16:12.920
retail
01:16:12.920 --> 01:16:13.380
response
01:16:14.300 --> 01:16:14.760
as to
01:16:14.760 --> 01:16:15.140
understand
01:16:15.140 --> 01:16:15.660
what exactly
01:16:15.660 --> 01:16:16.120
the product
01:16:16.120 --> 01:16:16.460
response
01:16:16.460 --> 01:16:17.020
looks like
01:16:17.020 --> 01:16:18.000
so if you see
01:16:18.000 --> 01:16:18.740
over here
01:16:19.420 --> 01:16:20.140
it is
01:16:20.140 --> 01:16:20.500
created
01:16:20.500 --> 01:16:21.060
with the help
01:16:21.060 --> 01:16:21.860
of
01:16:21.860 --> 01:16:22.220
yaml
01:16:22.220 --> 01:16:22.800
based syntax
01:16:22.800 --> 01:16:23.280
that I have
01:16:23.280 --> 01:16:23.680
described
01:16:23.680 --> 01:16:24.020
here
01:16:24.820 --> 01:16:25.500
so
01:16:25.500 --> 01:16:26.400
inside
01:16:26.400 --> 01:16:26.740
this
01:16:26.740 --> 01:16:27.140
users
01:16:27.140 --> 01:16:27.460
key
01:16:27.460 --> 01:16:27.820
we do
01:16:27.820 --> 01:16:27.960
have
01:16:27.960 --> 01:16:28.140
different
01:16:31.180 --> 01:16:31.860
basically
01:16:31.860 --> 01:16:32.540
subkeys
01:16:32.540 --> 01:16:33.520
subkeys
01:16:33.520 --> 01:16:34.080
and
01:16:34.080 --> 01:16:34.980
this
01:16:34.980 --> 01:16:35.300
subkeys
01:16:35.300 --> 01:16:35.720
we have
01:16:36.300 --> 01:16:37.060
the values
01:16:37.060 --> 01:16:37.840
actually
01:16:37.840 --> 01:16:38.060
their
01:16:39.340 --> 01:16:40.020
corresponding
01:16:40.020 --> 01:16:40.360
values
01:16:40.360 --> 01:16:41.060
and
01:16:41.060 --> 01:16:41.440
here
01:16:41.440 --> 01:16:41.700
we are
01:16:41.700 --> 01:16:42.000
using
01:16:42.000 --> 01:16:42.720
templates
01:16:43.500 --> 01:16:44.100
in terms
01:16:44.100 --> 01:16:44.880
of raml
01:16:44.880 --> 01:16:45.520
we have
01:16:45.520 --> 01:16:45.980
lot of
01:16:45.980 --> 01:16:46.280
templates
01:16:47.040 --> 01:16:48.720
so let's say
01:16:48.720 --> 01:16:49.440
here we are
01:16:49.440 --> 01:16:49.700
using
01:16:49.700 --> 01:16:50.660
exchange modules
01:16:50.660 --> 01:16:51.320
as one of
01:16:51.320 --> 01:16:51.880
the templates
01:16:53.580 --> 01:16:54.640
so this is
01:16:54.640 --> 01:16:55.220
the file
01:16:55.220 --> 01:16:55.560
system
01:16:55.560 --> 01:16:56.100
implementation
01:16:56.820 --> 01:16:57.500
and
01:16:57.500 --> 01:16:58.520
if you go
01:16:58.520 --> 01:16:58.900
here
01:16:58.900 --> 01:16:59.920
the path
01:16:59.920 --> 01:17:00.300
will be
01:17:00.300 --> 01:17:00.660
describing
01:17:01.420 --> 01:17:01.940
will be
01:17:01.940 --> 01:17:02.180
describing
01:17:02.180 --> 01:17:02.660
a path
01:17:02.660 --> 01:17:03.100
over here
01:17:03.100 --> 01:17:03.700
the exchange
01:17:03.700 --> 01:17:04.040
modules
01:17:04.040 --> 01:17:04.440
and inside
01:17:04.440 --> 01:17:04.860
the exchange
01:17:04.860 --> 01:17:05.200
modules
01:17:05.200 --> 01:17:05.520
and
01:17:05.520 --> 01:17:05.720
whole
01:17:05.720 --> 01:17:06.020
jmule
01:17:06.020 --> 01:17:06.420
template
01:17:06.420 --> 01:17:07.600
and then
01:17:07.600 --> 01:17:08.160
we'll be
01:17:08.160 --> 01:17:08.320
going
01:17:08.320 --> 01:17:08.560
through
01:17:08.560 --> 01:17:09.060
this
01:17:09.060 --> 01:17:09.420
retail
01:17:09.420 --> 01:17:09.900
product
01:17:09.900 --> 01:17:10.940
and here
01:17:10.940 --> 01:17:11.260
the
01:17:12.120 --> 01:17:12.380
retail
01:17:12.380 --> 01:17:12.720
product
01:17:12.720 --> 01:17:12.960
of
01:17:12.960 --> 01:17:13.840
raml
01:17:13.840 --> 01:17:14.500
so we'll
01:17:14.500 --> 01:17:15.100
be describing
01:17:15.100 --> 01:17:16.340
a whole
01:17:17.020 --> 01:17:17.500
rules and
01:17:19.720 --> 01:17:20.320
implementations
01:17:21.460 --> 01:17:22.060
where
01:17:22.060 --> 01:17:22.460
or
01:17:22.460 --> 01:17:22.960
how should
01:17:22.960 --> 01:17:23.360
the request
01:17:23.360 --> 01:17:24.000
should be
01:17:24.000 --> 01:17:24.540
all those
01:17:24.540 --> 01:17:24.840
things
01:17:24.840 --> 01:17:26.180
so we are just
01:17:27.480 --> 01:17:28.080
bringing
01:17:28.080 --> 01:17:29.140
all these
01:17:29.140 --> 01:17:29.660
implementations
01:17:29.660 --> 01:17:30.040
into a
01:17:30.040 --> 01:17:30.740
separate file
01:17:30.740 --> 01:17:31.320
so that
01:17:31.320 --> 01:17:32.300
we can just
01:17:32.300 --> 01:17:32.620
bring this
01:17:33.680 --> 01:17:34.700
own file
01:17:34.700 --> 01:17:35.120
here
01:17:35.120 --> 01:17:35.400
itself
01:17:35.980 --> 01:17:36.480
funds
01:17:36.480 --> 01:17:37.180
let's say
01:17:37.180 --> 01:17:37.760
you provided
01:17:38.820 --> 01:17:39.420
url
01:17:39.420 --> 01:17:39.680
I mean
01:17:39.680 --> 01:17:40.100
the path
01:17:40.100 --> 01:17:40.760
over here
01:17:40.760 --> 01:17:41.380
everything
01:17:41.380 --> 01:17:41.740
whatever
01:17:41.740 --> 01:17:42.000
there
01:17:42.000 --> 01:17:42.460
in that
01:17:42.460 --> 01:17:42.940
specific
01:17:42.940 --> 01:17:43.860
file
01:17:43.860 --> 01:17:44.320
they will be
01:17:44.320 --> 01:17:44.740
just
01:17:44.740 --> 01:17:44.940
copy
01:17:44.940 --> 01:17:45.120
and
01:17:45.120 --> 01:17:45.480
paste it
01:17:45.480 --> 01:17:45.580
here
01:17:45.580 --> 01:17:45.940
it's like
01:17:45.940 --> 01:17:47.000
kind of
01:17:47.900 --> 01:17:48.460
modularizing
01:17:48.460 --> 01:17:48.800
things
01:17:48.800 --> 01:17:49.240
so that
01:17:49.240 --> 01:17:49.800
you can just
01:17:49.800 --> 01:17:50.340
reuse those
01:17:50.340 --> 01:17:50.700
modules
01:17:50.700 --> 01:17:51.340
or
01:17:51.340 --> 01:17:51.860
reuse those
01:17:51.860 --> 01:17:52.460
implementations
01:17:52.460 --> 01:17:53.000
wherever you
01:17:53.000 --> 01:17:53.840
want to
01:17:53.840 --> 01:17:54.340
so that's
01:17:54.340 --> 01:17:54.900
how it works
01:17:54.900 --> 01:17:55.720
so
01:17:55.720 --> 01:17:56.280
I mean
01:17:56.280 --> 01:17:58.140
you will be
01:17:58.140 --> 01:17:58.600
utilizing
01:17:58.600 --> 01:17:59.760
that specification
01:17:59.760 --> 01:18:00.380
over here
01:18:00.380 --> 01:18:00.800
but
01:18:00.800 --> 01:18:01.500
how exactly
01:18:01.500 --> 01:18:02.360
is that
01:18:02.360 --> 01:18:03.060
being designed
01:18:03.060 --> 01:18:03.880
let's just
01:18:03.880 --> 01:18:04.180
go through
01:18:04.180 --> 01:18:04.440
that
01:18:04.440 --> 01:18:04.920
so if
01:18:04.920 --> 01:18:05.340
you see
01:18:05.340 --> 01:18:05.660
over here
01:18:06.720 --> 01:18:07.420
types of
01:18:07.420 --> 01:18:07.700
products
01:18:07.700 --> 01:18:08.340
right
01:18:08.340 --> 01:18:09.000
so
01:18:09.000 --> 01:18:09.340
for
01:18:09.340 --> 01:18:09.940
retail
01:18:09.940 --> 01:18:10.500
API
01:18:11.100 --> 01:18:11.700
we have
01:18:11.700 --> 01:18:12.240
lots of
01:18:12.240 --> 01:18:12.480
products
01:18:12.480 --> 01:18:13.340
basically
01:18:14.400 --> 01:18:15.200
one of
01:18:15.200 --> 01:18:15.480
those
01:18:15.480 --> 01:18:15.720
products
01:18:15.720 --> 01:18:16.040
I mean
01:18:16.040 --> 01:18:16.540
each and
01:18:16.540 --> 01:18:17.440
there is
01:18:17.440 --> 01:18:18.040
no hard rule
01:18:18.040 --> 01:18:18.480
that
01:18:18.480 --> 01:18:18.800
each and
01:18:18.800 --> 01:18:19.240
every product
01:18:19.240 --> 01:18:19.760
has its
01:18:19.760 --> 01:18:20.440
own type
01:18:20.440 --> 01:18:21.240
as it
01:18:21.240 --> 01:18:21.720
has this
01:18:21.720 --> 01:18:22.020
should be
01:18:22.020 --> 01:18:22.380
the same
01:18:22.380 --> 01:18:23.160
same type
01:18:23.160 --> 01:18:23.460
right
01:18:23.460 --> 01:18:24.100
they might be
01:18:24.100 --> 01:18:24.360
having
01:18:24.360 --> 01:18:24.740
different
01:18:24.740 --> 01:18:25.680
types as well
01:18:25.680 --> 01:18:26.540
so
01:18:26.540 --> 01:18:27.100
that's why
01:18:27.680 --> 01:18:28.200
for
01:18:28.200 --> 01:18:28.700
type of
01:18:28.700 --> 01:18:29.120
the product
01:18:29.120 --> 01:18:30.080
we have
01:18:30.080 --> 01:18:30.720
different
01:18:30.720 --> 01:18:31.500
identifiers
01:18:31.500 --> 01:18:33.420
so let's say
01:18:33.420 --> 01:18:34.500
in
01:18:34.500 --> 01:18:34.980
I mean
01:18:34.980 --> 01:18:35.520
inside the
01:18:35.520 --> 01:18:35.740
types
01:18:36.920 --> 01:18:37.520
attribute
01:18:37.520 --> 01:18:38.480
we have
01:18:38.480 --> 01:18:39.420
the identifier
01:18:39.420 --> 01:18:40.340
the ID of
01:18:40.340 --> 01:18:40.700
the type
01:18:42.180 --> 01:18:43.260
we will be
01:18:43.260 --> 01:18:43.640
defining
01:18:43.640 --> 01:18:44.280
a type
01:18:44.280 --> 01:18:44.660
name
01:18:44.660 --> 01:18:44.860
or
01:18:45.600 --> 01:18:46.040
unique
01:18:46.040 --> 01:18:46.520
identifier
01:18:46.520 --> 01:18:47.380
for a
01:18:47.380 --> 01:18:48.360
product over here
01:18:48.360 --> 01:18:49.100
and mapping
01:18:49.100 --> 01:18:49.660
this unique
01:18:49.660 --> 01:18:50.220
identifier
01:18:50.220 --> 01:18:51.380
to a
01:18:51.380 --> 01:18:51.820
description
01:18:51.820 --> 01:18:52.840
so let's say
01:18:52.840 --> 01:18:53.180
for an
01:18:53.180 --> 01:18:53.800
example
01:18:54.700 --> 01:18:55.620
it would be
01:18:55.620 --> 01:18:56.000
very easy
01:18:56.000 --> 01:18:56.440
if we have
01:18:56.440 --> 01:18:57.000
examples actually
01:19:01.940 --> 01:19:02.500
and
01:19:02.500 --> 01:19:02.900
we have
01:19:02.900 --> 01:19:03.440
different types
01:19:04.500 --> 01:19:05.060
like
01:19:08.020 --> 01:19:08.580
food
01:19:10.780 --> 01:19:11.340
clothes
01:19:14.080 --> 01:19:14.640
medicine
01:19:14.640 --> 01:19:15.460
okay
01:19:16.280 --> 01:19:17.040
so
01:19:17.040 --> 01:19:17.580
for a
01:19:17.580 --> 01:19:17.800
layman
01:19:17.800 --> 01:19:18.180
user
01:19:18.180 --> 01:19:18.680
this is
01:19:18.680 --> 01:19:18.940
fine
01:19:18.940 --> 01:19:19.880
but for
01:19:19.880 --> 01:19:20.320
system
01:19:21.280 --> 01:19:21.800
for the
01:19:21.800 --> 01:19:22.280
application
01:19:22.280 --> 01:19:23.120
you need to
01:19:23.120 --> 01:19:24.240
have
01:19:24.800 --> 01:19:25.300
type
01:19:25.300 --> 01:19:25.820
as an
01:19:25.820 --> 01:19:26.260
attribute
01:19:26.260 --> 01:19:27.120
for a
01:19:27.120 --> 01:19:27.340
product
01:19:27.340 --> 01:19:28.360
and for
01:19:28.360 --> 01:19:29.140
this type
01:19:29.140 --> 01:19:29.700
you'll be
01:19:29.700 --> 01:19:29.900
having
01:19:29.900 --> 01:19:30.220
two
01:19:30.220 --> 01:19:30.520
different
01:19:30.520 --> 01:19:30.820
attributes
01:19:30.820 --> 01:19:31.460
like
01:19:31.460 --> 01:19:32.360
identifier
01:19:33.960 --> 01:19:35.020
which is
01:19:35.020 --> 01:19:35.460
a unique
01:19:35.460 --> 01:19:35.780
ID
01:19:35.780 --> 01:19:36.480
basically
01:19:36.480 --> 01:19:38.380
let's say
01:19:38.380 --> 01:19:39.340
D23
01:19:39.340 --> 01:19:39.800
or
01:19:42.060 --> 01:19:42.820
D2345
01:19:42.820 --> 01:19:43.600
so this is
01:19:43.600 --> 01:19:43.940
a unique
01:19:43.940 --> 01:19:44.500
identifier
01:19:44.640 --> 01:19:45.280
and
01:19:45.280 --> 01:19:45.940
this is
01:19:45.940 --> 01:19:46.220
I mean
01:19:46.220 --> 01:19:46.600
a user
01:19:46.600 --> 01:19:47.080
can't
01:19:47.080 --> 01:19:47.400
understand
01:19:47.400 --> 01:19:47.860
this
01:19:47.860 --> 01:19:48.100
specific
01:19:48.100 --> 01:19:48.240
thing
01:19:49.020 --> 01:19:49.620
so
01:19:49.620 --> 01:19:50.020
we'll
01:19:50.020 --> 01:19:50.400
be
01:19:50.400 --> 01:19:50.880
defining
01:19:51.520 --> 01:19:52.220
a
01:19:52.220 --> 01:19:52.560
description
01:19:52.560 --> 01:19:53.020
as well
01:19:53.020 --> 01:19:53.280
for that
01:19:54.820 --> 01:19:55.500
so
01:19:55.500 --> 01:19:55.720
this
01:19:55.720 --> 01:19:56.100
description
01:19:56.100 --> 01:19:56.980
provides
01:19:56.980 --> 01:19:57.400
a
01:19:57.400 --> 01:19:57.780
one-to-one
01:19:57.780 --> 01:19:58.080
mapping
01:19:58.600 --> 01:19:59.160
to a
01:19:59.160 --> 01:19:59.640
product
01:19:59.640 --> 01:20:00.340
to its
01:20:00.340 --> 01:20:00.640
type
01:20:00.640 --> 01:20:01.560
let's say
01:20:01.560 --> 01:20:02.540
D2345
01:20:02.540 --> 01:20:03.100
corresponds
01:20:03.100 --> 01:20:03.400
to a
01:20:03.400 --> 01:20:03.860
specific
01:20:03.860 --> 01:20:04.160
food
01:20:04.780 --> 01:20:05.360
product
01:20:06.080 --> 01:20:06.660
so
01:20:06.660 --> 01:20:07.480
I mean
01:20:07.480 --> 01:20:08.060
here
01:20:08.060 --> 01:20:08.560
I have
01:20:08.560 --> 01:20:09.280
provided you
01:20:09.280 --> 01:20:10.140
I mean
01:20:10.140 --> 01:20:10.620
here I have
01:20:10.620 --> 01:20:11.120
just provided
01:20:11.120 --> 01:20:11.540
description
01:20:11.540 --> 01:20:11.920
as a
01:20:11.920 --> 01:20:12.100
food
01:20:12.100 --> 01:20:12.840
but that
01:20:12.840 --> 01:20:13.100
might be
01:20:13.100 --> 01:20:13.420
anything
01:20:15.720 --> 01:20:16.460
12345
01:20:17.280 --> 01:20:17.900
but you
01:20:17.900 --> 01:20:19.360
don't want to
01:20:19.360 --> 01:20:19.720
use it
01:20:19.720 --> 01:20:20.440
to provide
01:20:20.440 --> 01:20:21.520
his own
01:20:21.520 --> 01:20:21.860
things
01:20:21.860 --> 01:20:22.160
right
01:20:22.160 --> 01:20:23.300
or his own
01:20:23.300 --> 01:20:23.800
specifications
01:20:23.800 --> 01:20:24.780
let's say
01:20:24.780 --> 01:20:25.960
hash hash hash
01:20:25.960 --> 01:20:27.000
or dollar dollar dollar
01:20:27.000 --> 01:20:28.000
or this might
01:20:28.000 --> 01:20:29.020
some kind of
01:20:29.020 --> 01:20:29.340
input
01:20:29.340 --> 01:20:30.540
can crash
01:20:30.540 --> 01:20:31.160
the system
01:20:31.160 --> 01:20:31.860
anyway
01:20:32.720 --> 01:20:33.200
so
01:20:33.200 --> 01:20:33.800
in order to
01:20:33.800 --> 01:20:34.520
restrict them
01:20:34.520 --> 01:20:35.300
so we'll be
01:20:35.300 --> 01:20:35.980
providing
01:20:36.880 --> 01:20:37.360
kind of
01:20:38.460 --> 01:20:38.880
rules
01:20:38.880 --> 01:20:39.680
for our
01:20:40.840 --> 01:20:41.260
APS
01:20:41.260 --> 01:20:41.780
specifications
01:20:41.780 --> 01:20:42.800
so those
01:20:42.800 --> 01:20:43.300
will be the
01:20:43.300 --> 01:20:43.620
patterns
01:20:43.620 --> 01:20:44.440
that we wanted to
01:20:44.440 --> 01:20:44.760
follow
01:20:44.760 --> 01:20:45.700
or minimum
01:20:45.700 --> 01:20:46.000
length
01:20:46.000 --> 01:20:46.520
or maximum
01:20:46.520 --> 01:20:47.060
length
01:20:47.060 --> 01:20:48.080
if you
01:20:48.080 --> 01:20:48.800
see
01:20:48.800 --> 01:20:49.960
a sign up forms
01:20:49.960 --> 01:20:51.360
let's say
01:20:51.360 --> 01:20:52.000
you've
01:20:52.000 --> 01:20:52.500
provided a
01:20:52.500 --> 01:20:52.960
dummy email
01:20:52.960 --> 01:20:53.560
without any
01:20:53.560 --> 01:20:53.760
entry
01:20:53.760 --> 01:20:54.040
symbol
01:20:54.040 --> 01:20:54.700
or
01:20:54.700 --> 01:20:54.940
any
01:20:54.940 --> 01:20:55.420
those things
01:20:55.420 --> 01:20:56.080
you'll be
01:20:56.080 --> 01:20:56.720
getting errors
01:20:56.720 --> 01:20:57.100
right
01:20:57.100 --> 01:20:58.060
so that's how
01:20:58.060 --> 01:20:58.540
these are
01:20:58.540 --> 01:20:58.840
controlled
01:20:58.840 --> 01:20:59.340
over here
01:20:59.340 --> 01:20:59.780
so
01:20:59.780 --> 01:21:00.320
that's how
01:21:00.320 --> 01:21:00.720
it works
01:21:01.660 --> 01:21:02.460
so it
01:21:02.460 --> 01:21:02.800
correspond
01:21:02.800 --> 01:21:03.300
the type
01:21:03.300 --> 01:21:03.740
corresponds
01:21:03.740 --> 01:21:04.020
to the
01:21:05.140 --> 01:21:05.700
identifier
01:21:05.700 --> 01:21:05.980
and
01:21:05.980 --> 01:21:06.380
identifier
01:21:06.380 --> 01:21:06.980
mapping
01:21:08.840 --> 01:21:09.400
so
01:21:09.400 --> 01:21:10.220
that is
01:21:10.220 --> 01:21:10.460
the way
01:21:10.460 --> 01:21:11.100
for example
01:21:11.880 --> 01:21:12.440
and
01:21:13.060 --> 01:21:13.460
and
01:21:13.460 --> 01:21:14.140
we have product
01:21:14.140 --> 01:21:14.680
characteristics
01:21:14.680 --> 01:21:15.100
like
01:21:15.100 --> 01:21:16.300
an object
01:21:16.300 --> 01:21:17.280
here you can see
01:21:17.280 --> 01:21:17.900
like
01:21:17.900 --> 01:21:18.540
I've told
01:21:18.540 --> 01:21:18.920
the
01:21:18.920 --> 01:21:19.380
multi-line
01:21:20.800 --> 01:21:21.480
strings
01:21:21.480 --> 01:21:22.160
basically
01:21:22.160 --> 01:21:22.660
these are
01:21:22.660 --> 01:21:23.140
multi-line
01:21:23.140 --> 01:21:23.680
strings in the
01:21:23.680 --> 01:21:24.160
sense
01:21:24.160 --> 01:21:25.280
character arrays
01:21:25.280 --> 01:21:25.740
basically
01:21:25.740 --> 01:21:26.820
and
01:21:26.820 --> 01:21:27.420
for
01:21:27.420 --> 01:21:27.740
properties
01:21:27.740 --> 01:21:28.220
we do
01:21:28.220 --> 01:21:28.440
have
01:21:28.440 --> 01:21:29.040
code as a
01:21:29.040 --> 01:21:29.420
property
01:21:29.420 --> 01:21:29.960
we do
01:21:29.960 --> 01:21:30.300
have a
01:21:30.300 --> 01:21:30.760
name as a
01:21:30.760 --> 01:21:31.140
property
01:21:31.140 --> 01:21:31.760
and
01:21:31.760 --> 01:21:32.080
description
01:21:32.080 --> 01:21:32.440
as a
01:21:32.440 --> 01:21:32.920
property
01:21:32.920 --> 01:21:33.740
so for
01:21:33.740 --> 01:21:34.060
product
01:21:34.060 --> 01:21:34.620
characteristics
01:21:34.620 --> 01:21:36.380
so let's say
01:21:37.060 --> 01:21:37.620
I'm just
01:21:37.620 --> 01:21:38.080
translating
01:21:38.080 --> 01:21:38.740
this
01:21:38.740 --> 01:21:39.120
APS
01:21:39.120 --> 01:21:39.680
specification
01:21:39.680 --> 01:21:40.460
to
01:21:40.460 --> 01:21:41.240
our user
01:21:41.860 --> 01:21:42.360
friendly
01:21:42.360 --> 01:21:42.860
scenarios
01:21:42.860 --> 01:21:43.620
to
01:21:43.620 --> 01:21:44.220
understand things
01:21:46.860 --> 01:21:48.280
so let's say
01:21:48.280 --> 01:21:49.340
each and every
01:21:49.340 --> 01:21:50.380
so
01:21:50.380 --> 01:21:51.940
this is
01:21:51.940 --> 01:21:52.400
type is
01:21:52.400 --> 01:21:53.160
specific to
01:21:53.820 --> 01:21:54.200
and
01:21:54.200 --> 01:21:54.700
again
01:21:54.700 --> 01:21:55.240
this is like
01:21:55.240 --> 01:21:55.620
business
01:21:55.620 --> 01:21:56.320
in space
01:21:56.320 --> 01:21:56.680
I mean
01:21:56.680 --> 01:21:57.260
business specific
01:21:57.260 --> 01:21:57.960
implementation
01:21:57.960 --> 01:21:58.680
right now
01:21:58.680 --> 01:21:59.280
we have taken
01:21:59.280 --> 01:21:59.860
example of
01:21:59.860 --> 01:22:00.280
a product
01:22:00.280 --> 01:22:00.680
catalog
01:22:00.680 --> 01:22:01.700
that might be
01:22:01.700 --> 01:22:02.200
anything
01:22:02.200 --> 01:22:02.680
specific to
01:22:02.680 --> 01:22:03.260
the project
01:22:03.820 --> 01:22:04.460
okay
01:22:04.460 --> 01:22:05.180
so the product
01:22:05.180 --> 01:22:05.660
characteristics
01:22:05.660 --> 01:22:06.240
comes in
01:22:06.240 --> 01:22:06.600
comes with
01:22:06.600 --> 01:22:07.140
different
01:22:07.140 --> 01:22:07.640
attributes
01:22:07.640 --> 01:22:08.520
like
01:22:08.520 --> 01:22:09.000
the code
01:22:09.000 --> 01:22:09.540
attribute
01:22:09.540 --> 01:22:10.700
and then
01:22:10.700 --> 01:22:11.160
name
01:22:11.160 --> 01:22:11.720
attribute
01:22:12.380 --> 01:22:13.340
and then
01:22:13.340 --> 01:22:13.960
a description
01:22:14.620 --> 01:22:15.220
attribute
01:22:20.520 --> 01:22:21.600
so we can just
01:22:21.600 --> 01:22:22.340
provide all these
01:22:22.340 --> 01:22:22.920
details over
01:22:22.920 --> 01:22:23.160
here
01:22:23.160 --> 01:22:24.080
and I think
01:22:24.080 --> 01:22:25.060
that
01:22:25.060 --> 01:22:25.780
subsequent
01:22:25.780 --> 01:22:26.720
these are
01:22:26.720 --> 01:22:27.080
the same
01:22:27.860 --> 01:22:28.540
things like
01:22:28.540 --> 01:22:29.060
we will be
01:22:29.060 --> 01:22:29.500
configuring
01:22:29.500 --> 01:22:29.880
each and
01:22:29.880 --> 01:22:30.220
everything
01:22:30.220 --> 01:22:31.600
but one of the
01:22:31.600 --> 01:22:32.260
most important
01:22:32.260 --> 01:22:32.600
thing
01:22:32.600 --> 01:22:33.160
over here is
01:22:34.400 --> 01:22:34.680
the
01:22:34.680 --> 01:22:35.140
syntaxes
01:22:35.140 --> 01:22:35.500
that we
01:22:35.500 --> 01:22:35.720
follow
01:22:35.720 --> 01:22:36.320
you have to
01:22:36.320 --> 01:22:36.860
understand
01:22:36.860 --> 01:22:37.680
how exactly
01:22:37.680 --> 01:22:37.940
the
01:22:37.940 --> 01:22:38.460
syntaxes
01:22:38.460 --> 01:22:38.620
are
01:22:38.620 --> 01:22:38.960
working
01:22:38.960 --> 01:22:40.220
so let's say
01:22:40.220 --> 01:22:40.700
here
01:22:40.700 --> 01:22:41.400
if you see
01:22:41.400 --> 01:22:41.700
right
01:22:41.720 --> 01:22:42.540
this product
01:22:42.540 --> 01:22:43.560
characteristic
01:22:43.560 --> 01:22:43.880
characteristic
01:22:43.880 --> 01:22:44.220
value
01:22:44.220 --> 01:22:44.680
is a
01:22:44.680 --> 01:22:45.220
type of
01:22:45.220 --> 01:22:45.760
object
01:22:45.760 --> 01:22:46.860
what exactly
01:22:46.860 --> 01:22:47.380
is this object
01:22:47.380 --> 01:22:48.140
basically
01:22:49.040 --> 01:22:50.080
if you see
01:22:50.080 --> 01:22:50.520
over here
01:22:51.220 --> 01:22:52.120
this identifier
01:22:52.120 --> 01:22:52.560
is a kind
01:22:52.560 --> 01:22:52.940
of type
01:22:52.940 --> 01:22:53.500
of string
01:22:53.500 --> 01:22:54.520
so you
01:22:54.520 --> 01:22:54.920
have only
01:22:56.140 --> 01:22:57.320
a single
01:22:57.320 --> 01:22:57.680
key
01:22:57.680 --> 01:22:58.380
and
01:22:58.380 --> 01:22:59.280
the corresponding
01:22:59.280 --> 01:22:59.540
value
01:22:59.540 --> 01:23:00.060
that's all
01:23:00.060 --> 01:23:00.880
but if you
01:23:00.880 --> 01:23:01.340
see over
01:23:01.340 --> 01:23:02.020
here
01:23:02.020 --> 01:23:02.500
identifier
01:23:02.500 --> 01:23:02.920
map
01:23:02.920 --> 01:23:03.520
is an
01:23:03.520 --> 01:23:03.960
object
01:23:03.960 --> 01:23:04.700
it has
01:23:04.700 --> 01:23:05.000
two
01:23:05.000 --> 01:23:05.880
different
01:23:05.880 --> 01:23:06.240
keys
01:23:06.240 --> 01:23:06.860
and
01:23:06.860 --> 01:23:07.140
the
01:23:07.140 --> 01:23:07.500
corresponding
01:23:07.500 --> 01:23:08.080
values
01:23:08.080 --> 01:23:09.060
like
01:23:09.060 --> 01:23:09.680
description
01:23:09.680 --> 01:23:10.000
is a
01:23:10.000 --> 01:23:10.200
key
01:23:10.200 --> 01:23:10.900
and then
01:23:10.900 --> 01:23:11.220
properties
01:23:11.220 --> 01:23:11.580
is a
01:23:11.580 --> 01:23:11.700
key
01:23:13.220 --> 01:23:14.500
and then
01:23:14.500 --> 01:23:15.040
product
01:23:15.040 --> 01:23:15.840
characteristic
01:23:15.840 --> 01:23:16.540
is also
01:23:16.540 --> 01:23:16.940
kind of
01:23:16.940 --> 01:23:17.380
type of
01:23:17.380 --> 01:23:17.620
object
01:23:17.620 --> 01:23:18.960
it has
01:23:18.960 --> 01:23:19.400
description
01:23:19.400 --> 01:23:19.960
over here
01:23:19.960 --> 01:23:20.700
and properties
01:23:20.700 --> 01:23:21.440
over here
01:23:21.440 --> 01:23:22.100
and properties
01:23:22.100 --> 01:23:22.280
has
01:23:23.380 --> 01:23:24.020
inner
01:23:24.020 --> 01:23:24.600
characteristics
01:23:24.600 --> 01:23:25.040
as well
01:23:25.040 --> 01:23:25.840
like code
01:23:25.840 --> 01:23:26.780
and it is
01:23:26.780 --> 01:23:27.640
a type of string
01:23:27.640 --> 01:23:28.620
this type
01:23:28.620 --> 01:23:29.000
itself
01:23:29.000 --> 01:23:29.540
is like
01:23:29.540 --> 01:23:29.800
built in
01:23:32.140 --> 01:23:32.780
thing
01:23:32.780 --> 01:23:33.080
for
01:23:33.080 --> 01:23:33.480
raml
01:23:33.480 --> 01:23:34.240
specification
01:23:34.920 --> 01:23:35.580
if you wanted
01:23:35.580 --> 01:23:36.120
to learn
01:23:36.120 --> 01:23:36.440
more
01:23:36.440 --> 01:23:36.600
about
01:23:37.500 --> 01:23:38.180
a raml
01:23:38.180 --> 01:23:38.600
and how
01:23:38.600 --> 01:23:38.940
what is
01:23:38.940 --> 01:23:39.480
the syntax
01:23:39.480 --> 01:23:40.260
of raml
01:23:41.220 --> 01:23:41.940
I would
01:23:41.940 --> 01:23:42.520
suggest
01:23:42.520 --> 01:23:43.100
to go
01:23:43.100 --> 01:23:43.560
through
01:23:43.560 --> 01:23:44.440
this
01:23:44.440 --> 01:23:45.060
documentation
01:23:47.220 --> 01:23:47.600
to
01:23:47.600 --> 01:23:47.860
have
01:23:49.060 --> 01:23:49.600
the
01:23:49.600 --> 01:23:50.080
detailed
01:23:50.080 --> 01:23:50.620
implementation
01:23:50.620 --> 01:23:51.380
aspects
01:23:53.200 --> 01:23:54.120
so
01:23:54.120 --> 01:23:55.600
this is
01:23:55.600 --> 01:23:55.720
how
01:23:55.720 --> 01:23:56.320
how a raml
01:23:56.320 --> 01:23:56.580
works
01:23:56.580 --> 01:23:57.180
basically
01:23:57.180 --> 01:23:58.020
we can
01:23:58.020 --> 01:23:58.360
just
01:23:58.360 --> 01:23:58.720
go through
01:23:58.720 --> 01:23:58.920
this
01:23:58.920 --> 01:23:59.500
documentation
01:24:00.180 --> 01:24:00.740
I'll be
01:24:00.740 --> 01:24:00.940
sharing
01:24:00.940 --> 01:24:01.240
these
01:24:01.240 --> 01:24:01.580
links
01:24:01.580 --> 01:24:02.480
later
01:24:02.480 --> 01:24:03.240
once you're
01:24:03.240 --> 01:24:03.380
done
01:24:03.380 --> 01:24:04.140
with it
01:24:07.460 --> 01:24:07.780
so
01:24:07.780 --> 01:24:08.260
that's
01:24:08.260 --> 01:24:08.560
how
01:24:08.560 --> 01:24:09.020
it works
01:24:09.020 --> 01:24:09.460
basically
01:24:09.460 --> 01:24:10.240
and
01:24:10.240 --> 01:24:10.780
then
01:24:10.780 --> 01:24:11.200
yeah
01:24:12.100 --> 01:24:12.860
so
01:24:12.860 --> 01:24:14.020
this is
01:24:15.400 --> 01:24:16.160
specification
01:24:16.160 --> 01:24:17.200
how should
01:24:17.200 --> 01:24:17.700
how
01:24:17.700 --> 01:24:18.000
an item
01:24:18.000 --> 01:24:18.580
should be
01:24:18.580 --> 01:24:19.420
so
01:24:19.420 --> 01:24:19.760
let's say
01:24:20.300 --> 01:24:21.480
there are
01:24:21.480 --> 01:24:21.840
nested
01:24:21.840 --> 01:24:22.340
syntaxes
01:24:22.340 --> 01:24:22.760
or
01:24:22.760 --> 01:24:23.240
nested
01:24:23.240 --> 01:24:23.840
specifications
01:24:23.840 --> 01:24:24.580
where
01:24:24.580 --> 01:24:25.420
a product
01:24:25.420 --> 01:24:26.000
depends upon
01:24:27.340 --> 01:24:27.920
another
01:24:28.560 --> 01:24:29.160
attribute
01:24:29.160 --> 01:24:29.780
of the product
01:24:29.780 --> 01:24:30.060
itself
01:24:30.060 --> 01:24:30.540
like
01:24:30.540 --> 01:24:30.960
that we have
01:24:30.960 --> 01:24:31.280
defined
01:24:31.280 --> 01:24:31.660
like
01:24:31.660 --> 01:24:32.340
identify
01:24:32.340 --> 01:24:33.120
that we have defined
01:24:33.120 --> 01:24:33.700
so
01:24:33.700 --> 01:24:34.480
here in that
01:24:34.480 --> 01:24:34.960
scenarios
01:24:34.960 --> 01:24:35.740
we'll be using
01:24:35.740 --> 01:24:36.400
dot syntax
01:24:36.400 --> 01:24:37.240
basically
01:24:37.240 --> 01:24:37.780
common
01:24:37.780 --> 01:24:38.560
dot
01:24:38.560 --> 01:24:39.260
resource ID
01:24:40.060 --> 01:24:40.380
so
01:24:40.380 --> 01:24:40.980
basically
01:24:42.640 --> 01:24:43.540
we have
01:24:43.540 --> 01:24:44.080
already
01:24:44.080 --> 01:24:44.720
defined
01:24:45.540 --> 01:24:46.220
this
01:24:46.220 --> 01:24:46.940
resource ID
01:24:46.940 --> 01:24:47.440
over here
01:24:47.440 --> 01:24:48.260
and we'll be
01:24:48.260 --> 01:24:48.580
utilizing
01:24:48.580 --> 01:24:49.260
this resource ID
01:24:49.840 --> 01:24:50.400
down
01:24:50.400 --> 01:24:51.100
there
01:24:51.100 --> 01:24:52.000
so
01:24:52.000 --> 01:24:52.480
for product
01:24:52.480 --> 01:24:52.780
variant
01:24:52.780 --> 01:24:53.480
we'll be using
01:24:53.480 --> 01:24:53.920
I mean
01:24:53.920 --> 01:24:54.340
we'll be
01:24:54.340 --> 01:24:54.960
mapping
01:24:54.960 --> 01:24:55.800
a one
01:24:55.800 --> 01:24:56.060
attribute
01:24:56.060 --> 01:24:56.460
which is
01:24:56.460 --> 01:24:56.660
already
01:24:56.660 --> 01:24:57.260
present
01:24:57.260 --> 01:24:58.180
to
01:24:58.180 --> 01:24:58.860
the other
01:24:58.860 --> 01:24:59.280
attribute
01:24:59.900 --> 01:25:00.280
so
01:25:00.280 --> 01:25:00.840
let's say
01:25:00.840 --> 01:25:01.200
I mean
01:25:01.200 --> 01:25:01.940
to understand
01:25:01.940 --> 01:25:03.220
help you
01:25:03.220 --> 01:25:03.580
understand
01:25:03.580 --> 01:25:03.980
more
01:25:03.980 --> 01:25:04.540
efficiently
01:25:04.540 --> 01:25:05.320
so
01:25:05.320 --> 01:25:05.880
let's say
01:25:05.880 --> 01:25:06.460
you have
01:25:07.140 --> 01:25:07.700
a scenario
01:25:07.700 --> 01:25:08.500
like this
01:25:08.500 --> 01:25:09.140
like
01:25:09.140 --> 01:25:09.980
for food
01:25:09.980 --> 01:25:10.840
you have
01:25:10.840 --> 01:25:11.440
a type
01:25:11.440 --> 01:25:12.000
identifier
01:25:12.000 --> 01:25:12.100
of
01:25:14.500 --> 01:25:15.620
chocolate
01:25:18.580 --> 01:25:19.180
and
01:25:19.180 --> 01:25:19.540
description
01:25:21.180 --> 01:25:22.300
is
01:25:22.300 --> 01:25:22.980
sample
01:25:25.700 --> 01:25:25.880
code
01:25:28.740 --> 01:25:29.240
and
01:25:29.240 --> 01:25:29.700
name
01:25:29.700 --> 01:25:30.860
should be
01:25:31.700 --> 01:25:32.200
in your
01:25:32.200 --> 01:25:32.760
organization
01:25:32.760 --> 01:25:33.820
you have
01:25:33.820 --> 01:25:34.420
a specific
01:25:37.140 --> 01:25:37.540
rule
01:25:37.540 --> 01:25:38.060
that
01:25:38.620 --> 01:25:39.880
each and every
01:25:39.880 --> 01:25:40.420
product name
01:25:40.420 --> 01:25:40.900
should
01:25:40.900 --> 01:25:41.440
have
01:25:41.440 --> 01:25:41.680
appended
01:25:41.680 --> 01:25:42.460
with the
01:25:42.460 --> 01:25:43.480
identifier unique
01:25:43.480 --> 01:25:43.840
identifier
01:25:43.840 --> 01:25:44.420
with that
01:25:44.420 --> 01:25:44.900
so
01:25:44.900 --> 01:25:45.200
you have
01:25:45.200 --> 01:25:45.420
to
01:25:45.420 --> 01:25:45.740
enforce
01:25:45.740 --> 01:25:46.280
that
01:25:46.280 --> 01:25:46.820
so
01:25:46.820 --> 01:25:47.300
let's say
01:25:47.300 --> 01:25:47.700
in those
01:25:47.700 --> 01:25:48.280
scenarios
01:25:48.860 --> 01:25:49.440
let's say
01:25:49.440 --> 01:25:49.860
for this
01:25:49.860 --> 01:25:50.120
specific
01:25:50.120 --> 01:25:50.640
use case
01:25:50.640 --> 01:25:51.320
what you'll do
01:25:51.320 --> 01:25:51.760
is
01:25:51.760 --> 01:25:52.740
just say
01:25:52.740 --> 01:25:52.940
a
01:25:52.940 --> 01:25:53.220
category
01:25:54.240 --> 01:25:55.520
and then
01:25:57.680 --> 01:25:58.460
you'll be
01:25:58.460 --> 01:25:58.740
just
01:25:58.740 --> 01:25:59.480
appending
01:25:59.480 --> 01:25:59.960
type
01:25:59.960 --> 01:26:00.140
dot
01:26:01.020 --> 01:26:01.660
identifier
01:26:02.900 --> 01:26:03.540
yeah
01:26:03.540 --> 01:26:04.080
so
01:26:04.080 --> 01:26:05.020
that's how
01:26:05.020 --> 01:26:05.960
you'll be
01:26:05.960 --> 01:26:06.180
using
01:26:06.180 --> 01:26:06.600
nested
01:26:06.600 --> 01:26:07.320
syntaxes
01:26:07.320 --> 01:26:07.600
with the
01:26:07.600 --> 01:26:08.040
help of
01:26:08.040 --> 01:26:08.760
dot syntax
01:26:08.760 --> 01:26:09.760
so this
01:26:09.760 --> 01:26:10.180
dot syntax
01:26:10.180 --> 01:26:11.180
is being used
01:26:11.180 --> 01:26:12.040
like these
01:26:12.040 --> 01:26:12.560
scenarios
01:26:12.560 --> 01:26:13.080
where you
01:26:13.080 --> 01:26:13.620
wanted to
01:26:13.620 --> 01:26:14.040
reuse
01:26:14.880 --> 01:26:15.500
the attributes
01:26:15.500 --> 01:26:15.840
that are
01:26:15.840 --> 01:26:16.060
already
01:26:16.060 --> 01:26:16.460
present
01:26:16.460 --> 01:26:17.100
so that
01:26:17.100 --> 01:26:17.380
you can
01:26:17.380 --> 01:26:17.980
maintain
01:26:17.980 --> 01:26:18.660
so
01:26:18.660 --> 01:26:19.220
the first
01:26:19.220 --> 01:26:19.840
and foremost
01:26:19.840 --> 01:26:20.460
advantage
01:26:20.460 --> 01:26:20.880
here is
01:26:21.640 --> 01:26:22.200
you'll be
01:26:22.200 --> 01:26:22.560
maintaining
01:26:22.560 --> 01:26:23.240
a single
01:26:23.240 --> 01:26:23.600
thing
01:26:23.600 --> 01:26:24.060
and a
01:26:24.060 --> 01:26:24.180
single
01:26:24.180 --> 01:26:24.600
place
01:26:25.360 --> 01:26:25.960
so the
01:26:25.960 --> 01:26:26.200
maintenance
01:26:26.200 --> 01:26:26.640
become
01:26:26.640 --> 01:26:27.180
very
01:26:27.180 --> 01:26:27.480
easy
01:26:27.480 --> 01:26:28.040
over here
01:26:28.040 --> 01:26:28.820
and there
01:26:28.820 --> 01:26:28.880
is
01:26:30.320 --> 01:26:30.960
like
01:26:30.960 --> 01:26:31.440
if you
01:26:31.440 --> 01:26:31.760
duplicate
01:26:31.760 --> 01:26:32.240
things
01:26:32.240 --> 01:26:32.860
then
01:26:32.860 --> 01:26:33.260
let's say
01:26:33.260 --> 01:26:33.860
you wanted to
01:26:33.860 --> 01:26:34.000
change
01:26:35.000 --> 01:26:35.640
identifier
01:26:35.640 --> 01:26:36.220
in later
01:26:36.220 --> 01:26:36.700
point of
01:26:36.700 --> 01:26:37.020
time
01:26:37.020 --> 01:26:37.580
and
01:26:37.580 --> 01:26:38.260
you have
01:26:38.260 --> 01:26:39.080
to trouble
01:26:39.080 --> 01:26:39.800
like
01:26:39.800 --> 01:26:40.060
hiding
01:26:40.060 --> 01:26:40.460
making
01:26:40.460 --> 01:26:40.960
modifying
01:26:40.960 --> 01:26:41.240
them
01:26:41.240 --> 01:26:41.640
each and
01:26:41.640 --> 01:26:42.180
everywhere
01:26:43.460 --> 01:26:44.460
so that is
01:26:44.460 --> 01:26:44.760
like
01:26:44.760 --> 01:26:45.020
very
01:26:45.020 --> 01:26:45.500
painsome
01:26:45.500 --> 01:26:46.260
so this
01:26:46.260 --> 01:26:46.640
is like
01:26:46.640 --> 01:26:46.780
not
01:26:49.680 --> 01:26:50.260
implemented
01:26:50.260 --> 01:26:50.860
or
01:26:50.860 --> 01:26:51.380
distributed
01:26:51.380 --> 01:26:52.420
or
01:26:52.420 --> 01:26:52.940
like
01:26:52.940 --> 01:26:53.340
compensated
01:26:53.340 --> 01:26:53.700
anywhere
01:26:53.700 --> 01:26:54.300
this is like
01:26:54.300 --> 01:26:54.800
best practice
01:26:54.800 --> 01:26:55.600
you can say
01:26:55.600 --> 01:26:56.220
with the
01:26:56.220 --> 01:26:56.860
help of
01:26:56.860 --> 01:26:57.260
like
01:26:57.260 --> 01:26:57.720
while
01:26:57.720 --> 01:26:58.160
developing
01:26:58.160 --> 01:26:58.700
the APIs
01:26:58.700 --> 01:26:59.700
so that
01:26:59.700 --> 01:27:00.280
is
01:27:00.280 --> 01:27:00.520
the first
01:27:00.520 --> 01:27:00.800
thing
01:27:00.800 --> 01:27:01.340
and
01:27:01.340 --> 01:27:01.820
when it
01:27:01.820 --> 01:27:02.140
comes to
01:27:04.020 --> 01:27:04.600
yeah
01:27:04.600 --> 01:27:05.540
if you see
01:27:05.540 --> 01:27:05.780
the
01:27:05.780 --> 01:27:06.200
question mark
01:27:06.200 --> 01:27:06.540
syntax
01:27:06.540 --> 01:27:07.180
over here
01:27:07.180 --> 01:27:08.140
this question mark
01:27:08.140 --> 01:27:08.560
syntax
01:27:08.560 --> 01:27:08.940
basically
01:27:11.100 --> 01:27:12.380
provides us
01:27:12.380 --> 01:27:13.020
a description
01:27:13.020 --> 01:27:14.700
that this is
01:27:15.420 --> 01:27:16.060
a kind of
01:27:17.760 --> 01:27:18.400
optional
01:27:18.400 --> 01:27:19.340
parameter
01:27:19.340 --> 01:27:20.220
basically
01:27:20.220 --> 01:27:21.360
so let's say
01:27:21.360 --> 01:27:22.320
first you wanted to
01:27:22.320 --> 01:27:22.520
have
01:27:22.520 --> 01:27:22.920
I mean
01:27:22.920 --> 01:27:23.300
populate
01:27:23.300 --> 01:27:24.820
all the
01:27:24.820 --> 01:27:25.520
attributes
01:27:26.300 --> 01:27:26.880
you can
01:27:26.880 --> 01:27:27.200
I mean
01:27:27.200 --> 01:27:28.420
you are
01:27:29.420 --> 01:27:30.060
comfortable
01:27:30.060 --> 01:27:30.480
enough
01:27:30.480 --> 01:27:31.060
to skip
01:27:31.060 --> 01:27:31.720
few of the
01:27:31.720 --> 01:27:32.020
attributes
01:27:32.020 --> 01:27:32.700
so in that
01:27:32.700 --> 01:27:32.940
scenario
01:27:32.940 --> 01:27:33.280
you will be
01:27:33.280 --> 01:27:33.760
just
01:27:33.760 --> 01:27:34.540
providing
01:27:35.260 --> 01:27:35.260
these
01:27:36.520 --> 01:27:37.200
optional
01:27:37.200 --> 01:27:37.600
attributes
01:27:37.600 --> 01:27:38.480
basically
01:27:38.480 --> 01:27:39.180
question mark
01:27:39.180 --> 01:27:39.700
syntax
01:27:39.700 --> 01:27:40.360
comes for
01:27:40.360 --> 01:27:41.200
that basically
01:27:41.200 --> 01:27:42.720
so that's how
01:27:42.720 --> 01:27:43.340
the whole
01:27:43.340 --> 01:27:43.980
syntaxes
01:27:43.980 --> 01:27:44.660
work here
01:27:44.660 --> 01:27:45.480
and
01:27:45.480 --> 01:27:45.920
again
01:27:45.920 --> 01:27:46.440
when it
01:27:46.440 --> 01:27:46.700
comes to
01:27:47.780 --> 01:27:48.480
the actual
01:27:48.480 --> 01:27:49.040
root file
01:27:49.040 --> 01:27:49.760
you will be
01:27:49.760 --> 01:27:50.340
just importing
01:27:50.340 --> 01:27:51.040
the file
01:27:51.040 --> 01:27:51.940
the API
01:27:51.940 --> 01:27:52.520
specification
01:27:52.520 --> 01:27:52.800
file
01:27:52.800 --> 01:27:53.320
that we have
01:27:53.320 --> 01:27:53.660
discussed
01:27:53.660 --> 01:27:54.440
till now
01:27:54.440 --> 01:27:55.060
into the
01:27:55.060 --> 01:27:55.280
root
01:27:55.280 --> 01:27:55.960
specification
01:27:56.900 --> 01:27:57.960
and then
01:27:57.960 --> 01:27:58.520
here
01:27:58.520 --> 01:27:59.100
we'll be
01:27:59.100 --> 01:27:59.340
providing
01:27:59.340 --> 01:28:00.100
the responses
01:28:00.100 --> 01:28:00.860
basically
01:28:01.660 --> 01:28:02.360
how this
01:28:02.360 --> 01:28:02.680
response
01:28:02.680 --> 01:28:03.000
works
01:28:03.000 --> 01:28:03.760
basically
01:28:03.760 --> 01:28:04.500
we'll be
01:28:04.500 --> 01:28:04.980
describing
01:28:06.080 --> 01:28:07.100
a product
01:28:07.100 --> 01:28:07.580
response
01:28:07.580 --> 01:28:10.040
as one of the
01:28:10.040 --> 01:28:10.880
response
01:28:10.880 --> 01:28:11.400
implementation
01:28:11.400 --> 01:28:12.300
and you'll be
01:28:12.300 --> 01:28:12.540
using
01:28:13.660 --> 01:28:14.200
I mean
01:28:14.200 --> 01:28:14.700
you just
01:28:14.700 --> 01:28:14.980
using
01:28:14.980 --> 01:28:15.940
this product
01:28:15.940 --> 01:28:16.420
product
01:28:16.420 --> 01:28:16.820
response
01:28:16.820 --> 01:28:17.820
so let's say
01:28:17.820 --> 01:28:18.180
we have
01:28:18.180 --> 01:28:18.800
already
01:28:18.800 --> 01:28:19.440
discussed
01:28:24.140 --> 01:28:24.920
yeah
01:28:28.200 --> 01:28:29.200
the response
01:28:29.200 --> 01:28:29.700
characteristic
01:28:29.700 --> 01:28:30.680
so the
01:28:30.680 --> 01:28:31.240
response
01:28:31.240 --> 01:28:31.600
works
01:28:31.600 --> 01:28:32.480
like this
01:28:32.480 --> 01:28:33.060
so what
01:28:33.060 --> 01:28:34.140
will be
01:28:34.140 --> 01:28:34.640
just
01:28:34.640 --> 01:28:35.420
if you
01:28:35.580 --> 01:28:36.100
do
01:28:37.080 --> 01:28:38.560
if you see
01:28:38.560 --> 01:28:39.100
over here
01:28:39.100 --> 01:28:39.680
you are
01:28:39.680 --> 01:28:39.940
using
01:28:39.940 --> 01:28:40.380
capital
01:28:40.380 --> 01:28:40.980
P
01:28:40.980 --> 01:28:41.100
and
01:28:42.140 --> 01:28:42.360
of
01:28:42.360 --> 01:28:42.800
fetching
01:28:42.800 --> 01:28:43.340
whatever
01:28:43.340 --> 01:28:44.120
that is
01:28:44.120 --> 01:28:44.280
there
01:28:44.280 --> 01:28:44.600
inside
01:28:45.320 --> 01:28:45.920
this
01:28:45.920 --> 01:28:46.340
path
01:28:46.340 --> 01:28:47.060
if you
01:28:47.060 --> 01:28:47.460
see over
01:28:47.460 --> 01:28:47.740
here
01:28:47.740 --> 01:28:48.340
in this
01:28:48.340 --> 01:28:48.600
path
01:28:48.600 --> 01:28:49.400
the
01:28:49.400 --> 01:28:49.760
pattern
01:28:49.760 --> 01:28:50.120
of
01:28:50.120 --> 01:28:50.720
the response
01:28:50.720 --> 01:28:51.120
should be
01:28:51.120 --> 01:28:51.340
like this
01:28:52.320 --> 01:28:52.920
so
01:28:52.920 --> 01:28:53.460
yeah
01:28:53.460 --> 01:28:53.960
we'll be
01:28:53.960 --> 01:28:54.200
defining
01:28:54.200 --> 01:28:54.660
each and
01:28:54.660 --> 01:28:54.880
every
01:28:54.880 --> 01:28:55.500
property
01:28:55.500 --> 01:28:56.260
on top
01:28:56.260 --> 01:28:57.100
and just
01:28:57.100 --> 01:28:57.600
utilizing
01:28:57.600 --> 01:28:58.560
already
01:28:58.560 --> 01:28:58.980
defined
01:28:58.980 --> 01:28:59.620
properties
01:28:59.620 --> 01:29:00.380
here in
01:29:00.380 --> 01:29:00.840
the bottom
01:29:00.840 --> 01:29:01.240
like for
01:29:01.240 --> 01:29:01.700
description
01:29:01.700 --> 01:29:02.480
we have
01:29:02.480 --> 01:29:02.940
validated
01:29:02.940 --> 01:29:03.460
what
01:29:03.460 --> 01:29:03.980
a description
01:29:03.980 --> 01:29:04.360
should be
01:29:04.360 --> 01:29:04.640
like
01:29:05.580 --> 01:29:06.320
description should
01:29:06.320 --> 01:29:06.600
be like
01:29:06.600 --> 01:29:07.220
what is the
01:29:07.220 --> 01:29:07.540
minimum length
01:29:07.540 --> 01:29:08.080
of the
01:29:08.080 --> 01:29:08.780
description should
01:29:08.780 --> 01:29:09.160
be like
01:29:09.160 --> 01:29:10.380
and we'll just
01:29:10.380 --> 01:29:10.940
describe
01:29:10.940 --> 01:29:11.380
a product
01:29:11.380 --> 01:29:11.840
should have
01:29:11.840 --> 01:29:12.200
description
01:29:12.200 --> 01:29:12.860
that's all
01:29:12.860 --> 01:29:13.640
we'll not
01:29:13.640 --> 01:29:14.140
describe
01:29:14.140 --> 01:29:15.060
over here
01:29:15.060 --> 01:29:15.520
how a
01:29:15.520 --> 01:29:16.420
description should be
01:29:16.420 --> 01:29:17.140
so you've
01:29:17.140 --> 01:29:17.640
got right
01:29:18.300 --> 01:29:19.040
so basically
01:29:19.040 --> 01:29:19.660
we'll be building
01:29:19.660 --> 01:29:20.680
step by step
01:29:20.680 --> 01:29:21.580
first we'll be
01:29:21.580 --> 01:29:22.020
describing
01:29:22.020 --> 01:29:22.860
a description
01:29:22.860 --> 01:29:23.660
and then
01:29:24.620 --> 01:29:25.400
each and
01:29:26.000 --> 01:29:26.560
every
01:29:26.560 --> 01:29:27.280
components
01:29:27.280 --> 01:29:28.020
that is
01:29:28.020 --> 01:29:28.500
that should be
01:29:28.500 --> 01:29:28.880
present inside
01:29:28.880 --> 01:29:29.280
a product
01:29:29.280 --> 01:29:29.960
and then
01:29:29.960 --> 01:29:30.360
we'll be
01:29:30.360 --> 01:29:30.820
framing a
01:29:30.820 --> 01:29:31.280
product over
01:29:31.280 --> 01:29:31.600
here
01:29:31.600 --> 01:29:32.320
and then
01:29:32.320 --> 01:29:32.700
we'll be
01:29:32.700 --> 01:29:33.040
using
01:29:33.040 --> 01:29:33.580
a product
01:29:33.580 --> 01:29:34.140
inside the
01:29:34.140 --> 01:29:34.880
response itself
01:29:34.880 --> 01:29:35.500
product
01:29:35.500 --> 01:29:35.940
response
01:29:36.720 --> 01:29:37.960
so that's
01:29:37.960 --> 01:29:39.320
how
01:29:39.320 --> 01:29:40.140
APA
01:29:40.140 --> 01:29:40.640
specification
01:29:40.640 --> 01:29:41.100
should be
01:29:41.100 --> 01:29:41.260
built
01:29:41.260 --> 01:29:41.640
for
01:29:41.640 --> 01:29:42.520
raml
01:29:42.520 --> 01:29:43.020
language
01:29:43.020 --> 01:29:43.660
and
01:29:43.660 --> 01:29:44.080
similarly
01:29:44.080 --> 01:29:44.560
we have
01:29:44.560 --> 01:29:45.240
product
01:29:45.240 --> 01:29:45.680
collection
01:29:45.680 --> 01:29:46.360
response
01:29:46.360 --> 01:29:46.880
and product
01:29:46.880 --> 01:29:47.200
variant
01:29:47.200 --> 01:29:47.540
collection
01:29:47.540 --> 01:29:48.060
response
01:29:48.060 --> 01:29:48.920
and all
01:29:48.920 --> 01:29:49.340
so
01:29:49.340 --> 01:29:49.720
these are
01:29:49.720 --> 01:29:50.200
like
01:29:50.800 --> 01:29:51.200
if you
01:29:51.720 --> 01:29:52.780
we can
01:29:52.780 --> 01:29:53.240
just go
01:29:53.240 --> 01:29:53.580
through
01:29:53.580 --> 01:29:53.840
over here
01:29:54.720 --> 01:29:55.740
we can
01:29:55.740 --> 01:29:56.000
have
01:29:56.000 --> 01:29:56.220
I mean
01:29:56.220 --> 01:29:56.700
if we have
01:29:56.700 --> 01:29:57.240
some time
01:29:57.240 --> 01:29:58.180
but just
01:29:58.180 --> 01:29:59.120
like mostly
01:29:59.120 --> 01:29:59.600
similarly
01:29:59.600 --> 01:30:00.160
these are
01:30:00.160 --> 01:30:00.820
the same
01:30:00.820 --> 01:30:01.280
implementations
01:30:01.860 --> 01:30:02.480
it's just
01:30:02.480 --> 01:30:02.880
that
01:30:02.880 --> 01:30:03.280
it's an
01:30:03.280 --> 01:30:03.680
another
01:30:03.680 --> 01:30:03.980
file
01:30:03.980 --> 01:30:04.640
it serves
01:30:04.640 --> 01:30:04.860
another
01:30:04.860 --> 01:30:05.380
purpose
01:30:05.380 --> 01:30:06.080
that's all
01:30:07.680 --> 01:30:08.320
okay
01:30:09.880 --> 01:30:10.520
yeah
01:30:10.520 --> 01:30:11.200
just a
01:30:11.200 --> 01:30:11.460
moment
01:30:12.220 --> 01:30:12.900
so yeah
01:30:12.900 --> 01:30:13.480
till now
01:30:13.480 --> 01:30:14.280
we just
01:30:14.280 --> 01:30:14.780
gone through
01:30:15.460 --> 01:30:15.840
a
01:30:15.840 --> 01:30:16.440
specification
01:30:17.340 --> 01:30:17.980
how
01:30:17.980 --> 01:30:18.660
an APA
01:30:18.660 --> 01:30:19.140
specification
01:30:19.140 --> 01:30:19.700
should be
01:30:19.700 --> 01:30:20.400
or
01:30:20.400 --> 01:30:20.620
what
01:30:20.620 --> 01:30:20.940
exactly
01:30:21.640 --> 01:30:22.280
the
01:30:22.280 --> 01:30:22.520
keys
01:30:22.520 --> 01:30:22.900
or what
01:30:22.900 --> 01:30:23.520
what exactly
01:30:23.520 --> 01:30:23.760
the
01:30:23.760 --> 01:30:24.020
values
01:30:24.020 --> 01:30:24.300
should be
01:30:25.040 --> 01:30:25.820
what exactly
01:30:25.820 --> 01:30:26.320
the pattern
01:30:26.320 --> 01:30:26.760
should be
01:30:26.760 --> 01:30:27.220
at all
01:30:27.220 --> 01:30:27.700
but
01:30:27.700 --> 01:30:28.040
till now
01:30:28.040 --> 01:30:28.540
we haven't
01:30:28.540 --> 01:30:29.000
gone through
01:30:29.000 --> 01:30:29.180
any
01:30:30.120 --> 01:30:30.540
route
01:30:30.540 --> 01:30:31.180
specifically
01:30:31.180 --> 01:30:31.580
till now
01:30:32.360 --> 01:30:33.000
so
01:30:33.000 --> 01:30:33.440
but
01:30:33.440 --> 01:30:34.240
if we
01:30:34.860 --> 01:30:35.440
discuss
01:30:35.440 --> 01:30:36.640
that we
01:30:36.640 --> 01:30:37.260
gonna follow
01:30:37.260 --> 01:30:37.960
REST API
01:30:37.960 --> 01:30:38.500
I think
01:30:38.500 --> 01:30:38.960
REST API
01:30:38.960 --> 01:30:39.460
implementation
01:30:39.460 --> 01:30:39.780
here
01:30:39.780 --> 01:30:40.320
right
01:30:40.320 --> 01:30:40.480
so
01:30:40.480 --> 01:30:40.840
for this
01:30:40.840 --> 01:30:41.240
REST API
01:30:41.240 --> 01:30:42.060
implementation
01:30:42.060 --> 01:30:42.700
a route
01:30:42.700 --> 01:30:43.160
should be
01:30:43.160 --> 01:30:43.420
an
01:30:43.420 --> 01:30:43.920
important
01:30:43.920 --> 01:30:44.280
point
01:30:44.280 --> 01:30:44.760
or
01:30:44.760 --> 01:30:45.380
okay
01:30:46.160 --> 01:30:46.300
so
01:30:46.860 --> 01:30:47.620
what exactly
01:30:47.620 --> 01:30:47.920
is a
01:30:47.920 --> 01:30:48.300
route
01:30:49.340 --> 01:30:50.320
a route
01:30:50.320 --> 01:30:50.460
is
01:30:51.640 --> 01:30:52.600
a place
01:30:52.600 --> 01:30:52.880
where
01:30:52.880 --> 01:30:53.420
we host
01:30:53.420 --> 01:30:53.620
up
01:30:53.620 --> 01:30:53.980
API
01:30:54.620 --> 01:30:55.140
so
01:30:55.140 --> 01:30:55.720
let's say
01:30:55.720 --> 01:30:56.400
you have
01:30:56.400 --> 01:30:57.080
a couple of
01:30:57.080 --> 01:30:57.480
APS
01:30:57.480 --> 01:30:58.520
let's say
01:30:58.520 --> 01:30:58.920
product
01:30:58.920 --> 01:30:59.420
API
01:31:00.340 --> 01:31:01.040
which
01:31:01.040 --> 01:31:01.460
provides
01:31:01.460 --> 01:31:02.480
a list of
01:31:02.480 --> 01:31:02.940
all the
01:31:02.940 --> 01:31:03.160
products
01:31:03.160 --> 01:31:03.880
but
01:31:03.880 --> 01:31:04.360
again
01:31:04.860 --> 01:31:05.840
one of the
01:31:05.840 --> 01:31:06.400
best practice
01:31:06.400 --> 01:31:07.460
to design
01:31:07.460 --> 01:31:08.080
an API
01:31:08.080 --> 01:31:08.980
is to
01:31:08.980 --> 01:31:09.540
you should
01:31:09.540 --> 01:31:10.080
not use
01:31:10.080 --> 01:31:10.740
plurals over
01:31:10.740 --> 01:31:10.960
here
01:31:10.960 --> 01:31:11.340
you should
01:31:11.340 --> 01:31:11.740
only use
01:31:13.020 --> 01:31:13.560
singulars
01:31:13.560 --> 01:31:14.640
that is
01:31:14.640 --> 01:31:15.800
one of the
01:31:15.800 --> 01:31:16.460
best practice
01:31:16.460 --> 01:31:17.080
to maintain
01:31:17.080 --> 01:31:17.980
uniformity
01:31:17.980 --> 01:31:18.460
across
01:31:18.460 --> 01:31:20.340
all the
01:31:20.340 --> 01:31:22.700
you know
01:31:22.700 --> 01:31:22.980
routes
01:31:22.980 --> 01:31:23.380
that you
01:31:23.380 --> 01:31:23.960
wanna design
01:31:23.960 --> 01:31:24.720
okay
01:31:24.720 --> 01:31:25.660
that is one thing
01:31:25.660 --> 01:31:25.940
and
01:31:25.940 --> 01:31:26.520
let's say
01:31:26.520 --> 01:31:27.340
this product
01:31:27.340 --> 01:31:28.500
gives you
01:31:28.500 --> 01:31:29.100
a list of
01:31:29.100 --> 01:31:29.380
products
01:31:29.380 --> 01:31:30.500
so let's say
01:31:30.500 --> 01:31:31.880
you wanted to have
01:31:31.880 --> 01:31:32.660
a specific
01:31:32.660 --> 01:31:33.020
product
01:31:33.020 --> 01:31:34.160
and how it
01:31:34.160 --> 01:31:34.380
works
01:31:35.900 --> 01:31:36.620
so
01:31:40.380 --> 01:31:41.280
so this
01:31:41.280 --> 01:31:41.800
curly-based
01:31:41.800 --> 01:31:42.340
syntax
01:31:42.340 --> 01:31:42.940
provides you
01:31:46.500 --> 01:31:47.600
a variable
01:31:47.600 --> 01:31:48.060
here
01:31:48.060 --> 01:31:48.480
so
01:31:48.480 --> 01:31:49.060
this is not
01:31:49.060 --> 01:31:49.460
hard-coded
01:31:49.460 --> 01:31:50.160
to product one
01:31:50.160 --> 01:31:50.940
that might be
01:31:51.660 --> 01:31:52.240
a clothes
01:31:52.240 --> 01:31:52.460
or
01:31:53.240 --> 01:31:53.580
product
01:31:53.580 --> 01:31:54.080
slash
01:31:54.080 --> 01:31:54.580
chocolates
01:31:54.580 --> 01:31:55.040
or product
01:31:55.040 --> 01:31:55.260
slash
01:31:56.020 --> 01:31:56.540
biscuits
01:31:56.540 --> 01:31:56.960
or
01:31:56.960 --> 01:31:57.320
anything
01:31:57.320 --> 01:31:58.500
which is
01:31:58.500 --> 01:31:58.840
specific
01:31:58.840 --> 01:31:59.480
to
01:31:59.480 --> 01:32:00.160
that specific
01:32:00.160 --> 01:32:00.640
implementation
01:32:01.180 --> 01:32:01.740
and
01:32:01.740 --> 01:32:02.400
we can also
01:32:02.400 --> 01:32:03.020
have
01:32:03.020 --> 01:32:03.940
or
01:32:03.940 --> 01:32:04.260
delete
01:32:04.260 --> 01:32:04.840
as well
01:32:04.860 --> 01:32:05.980
like each
01:32:05.980 --> 01:32:06.720
and every
01:32:06.720 --> 01:32:07.220
route
01:32:07.980 --> 01:32:08.540
is
01:32:08.540 --> 01:32:08.920
associated
01:32:08.920 --> 01:32:09.260
with their
01:32:11.700 --> 01:32:12.540
API request
01:32:12.540 --> 01:32:12.980
basically
01:32:12.980 --> 01:32:13.780
so for product
01:32:13.780 --> 01:32:14.560
it's like
01:32:14.560 --> 01:32:15.260
get API
01:32:16.620 --> 01:32:18.140
and for
01:32:18.140 --> 01:32:18.400
getting
01:32:18.400 --> 01:32:19.240
each product
01:32:19.240 --> 01:32:19.680
we have
01:32:19.680 --> 01:32:20.400
a get API
01:32:21.180 --> 01:32:21.780
and
01:32:21.780 --> 01:32:22.300
let's say
01:32:22.300 --> 01:32:22.960
for
01:32:22.960 --> 01:32:23.340
creating
01:32:23.340 --> 01:32:24.260
a new product
01:32:24.780 --> 01:32:25.260
we have
01:32:25.260 --> 01:32:26.180
a post API
01:32:26.700 --> 01:32:27.140
but
01:32:27.140 --> 01:32:27.880
only product
01:32:27.880 --> 01:32:28.340
endpoint
01:32:29.020 --> 01:32:29.420
I think
01:32:29.420 --> 01:32:32.520
I don't
01:32:32.520 --> 01:32:32.760
wait
01:32:32.760 --> 01:32:33.960
let me just
01:32:36.580 --> 01:32:37.300
and
01:32:37.300 --> 01:32:37.880
you can also
01:32:37.880 --> 01:32:38.040
have
01:32:38.820 --> 01:32:39.100
or
01:32:39.100 --> 01:32:39.380
delete
01:32:39.380 --> 01:32:39.720
API
01:32:42.860 --> 01:32:43.580
slash
01:32:43.580 --> 01:32:43.880
product
01:32:44.460 --> 01:32:45.280
slash
01:32:45.280 --> 01:32:45.720
product
01:32:45.720 --> 01:32:46.180
ID
01:32:48.160 --> 01:32:48.280
and
01:32:48.880 --> 01:32:49.500
you wanted
01:32:49.500 --> 01:32:49.900
to
01:32:49.900 --> 01:32:50.120
edit
01:32:50.120 --> 01:32:50.600
a specific
01:32:50.600 --> 01:32:51.000
product
01:32:51.000 --> 01:32:51.400
which is
01:32:51.400 --> 01:32:51.620
already
01:32:51.620 --> 01:32:51.900
there
01:32:51.900 --> 01:32:52.180
inside
01:32:52.180 --> 01:32:52.400
the
01:32:52.400 --> 01:32:52.680
application
01:32:53.200 --> 01:32:53.880
in that
01:32:53.880 --> 01:32:54.340
scenario
01:32:55.160 --> 01:32:55.720
we have
01:32:55.720 --> 01:32:55.940
put
01:32:55.940 --> 01:32:56.200
API
01:32:59.900 --> 01:33:00.620
so
01:33:00.620 --> 01:33:00.920
yeah
01:33:00.920 --> 01:33:01.920
these are
01:33:01.920 --> 01:33:02.320
different
01:33:02.320 --> 01:33:02.680
APIs
01:33:02.680 --> 01:33:03.080
that you
01:33:04.680 --> 01:33:05.360
inside
01:33:05.360 --> 01:33:05.700
your
01:33:05.700 --> 01:33:05.980
route
01:33:05.980 --> 01:33:06.620
project
01:33:06.620 --> 01:33:07.240
so
01:33:07.240 --> 01:33:07.600
if you
01:33:07.600 --> 01:33:07.960
go
01:33:07.960 --> 01:33:08.220
over
01:33:08.220 --> 01:33:08.340
here
01:33:08.340 --> 01:33:08.520
so
01:33:08.520 --> 01:33:08.700
we'll
01:33:08.700 --> 01:33:08.880
be
01:33:08.880 --> 01:33:09.240
designing
01:33:09.240 --> 01:33:09.760
a couple
01:33:09.760 --> 01:33:09.800
of
01:33:10.700 --> 01:33:11.080
APIs
01:33:11.800 --> 01:33:12.180
so
01:33:12.180 --> 01:33:13.100
let's say
01:33:13.100 --> 01:33:13.240
for
01:33:14.120 --> 01:33:14.800
categories
01:33:14.800 --> 01:33:15.320
API
01:33:16.120 --> 01:33:17.020
let me
01:33:17.020 --> 01:33:17.240
just
01:33:17.240 --> 01:33:17.540
first
01:33:17.540 --> 01:33:17.880
describe
01:33:17.880 --> 01:33:18.080
you
01:33:18.080 --> 01:33:18.300
on
01:33:18.300 --> 01:33:18.720
products
01:33:18.720 --> 01:33:19.360
scenario
01:33:20.440 --> 01:33:20.860
I mean
01:33:20.860 --> 01:33:21.360
that will
01:33:21.360 --> 01:33:21.580
be
01:33:21.580 --> 01:33:21.880
mostly
01:33:21.880 --> 01:33:22.220
same
01:33:22.220 --> 01:33:22.280
for
01:33:23.160 --> 01:33:23.420
others
01:33:23.420 --> 01:33:23.980
as well
01:33:23.980 --> 01:33:24.800
so
01:33:24.800 --> 01:33:25.360
this
01:33:25.360 --> 01:33:26.020
get
01:33:26.760 --> 01:33:27.520
this is
01:33:27.520 --> 01:33:27.740
API
01:33:27.740 --> 01:33:28.140
method
01:33:28.140 --> 01:33:28.680
basically
01:33:28.680 --> 01:33:29.680
and
01:33:29.680 --> 01:33:29.960
the
01:33:29.960 --> 01:33:30.180
next
01:33:30.180 --> 01:33:30.560
one is
01:33:30.560 --> 01:33:30.860
route
01:33:30.860 --> 01:33:31.820
so
01:33:31.820 --> 01:33:32.360
an API
01:33:32.360 --> 01:33:32.820
method
01:33:32.820 --> 01:33:33.440
and a
01:33:33.440 --> 01:33:33.620
route
01:33:33.620 --> 01:33:33.920
should
01:33:33.920 --> 01:33:34.340
always
01:33:34.340 --> 01:33:34.700
coupled
01:33:34.700 --> 01:33:34.880
with
01:33:34.880 --> 01:33:35.200
each other
01:33:36.360 --> 01:33:36.760
a
01:33:36.760 --> 01:33:37.020
route
01:33:37.020 --> 01:33:37.480
without
01:33:37.480 --> 01:33:37.740
an
01:33:37.740 --> 01:33:37.900
API
01:33:37.900 --> 01:33:38.380
method
01:33:38.380 --> 01:33:38.840
is
01:33:38.840 --> 01:33:39.300
meaningless
01:33:40.160 --> 01:33:40.520
they
01:33:40.520 --> 01:33:40.680
should
01:33:40.680 --> 01:33:40.940
be
01:33:40.940 --> 01:33:41.260
always
01:33:41.260 --> 01:33:41.480
coupled
01:33:41.480 --> 01:33:41.700
with
01:33:41.700 --> 01:33:41.860
each
01:33:41.860 --> 01:33:42.240
other
01:33:42.240 --> 01:33:42.940
okay
01:33:42.940 --> 01:33:43.380
that's
01:33:43.380 --> 01:33:43.460
how
01:33:43.460 --> 01:33:43.900
it
01:33:43.900 --> 01:33:44.100
works
01:33:44.100 --> 01:33:44.600
in
01:33:44.600 --> 01:33:44.880
general
01:33:44.880 --> 01:33:45.360
scenarios
01:33:45.360 --> 01:33:45.960
basically
01:33:47.280 --> 01:33:47.980
and
01:33:47.980 --> 01:33:48.780
let's
01:33:48.780 --> 01:33:49.000
say
01:33:49.000 --> 01:33:49.220
you
01:33:49.220 --> 01:33:49.340
wanted
01:33:49.340 --> 01:33:49.920
to
01:33:49.920 --> 01:33:50.040
get
01:33:50.040 --> 01:33:50.280
all
01:33:50.280 --> 01:33:50.540
products
01:33:50.540 --> 01:33:50.880
then
01:33:50.880 --> 01:33:51.140
you
01:33:51.140 --> 01:33:51.520
hit
01:33:51.520 --> 01:33:51.960
get
01:33:51.960 --> 01:33:52.160
API
01:33:52.160 --> 01:33:52.440
with
01:33:52.440 --> 01:33:52.700
all
01:33:52.700 --> 01:33:53.100
products
01:33:53.100 --> 01:33:54.000
and
01:33:54.000 --> 01:33:54.080
for
01:33:55.060 --> 01:33:55.680
get
01:33:55.680 --> 01:33:55.900
a
01:33:55.900 --> 01:33:56.120
single
01:33:56.120 --> 01:33:56.540
product
01:33:57.120 --> 01:33:57.600
we can
01:33:57.600 --> 01:33:58.120
hit
01:33:58.120 --> 01:33:58.940
get
01:33:58.940 --> 01:33:59.320
product
01:33:59.320 --> 01:33:59.600
and
01:33:59.600 --> 01:34:00.420
product
01:34:00.420 --> 01:34:00.900
ID
01:34:00.900 --> 01:34:01.800
and
01:34:01.800 --> 01:34:02.060
for
01:34:02.060 --> 01:34:02.380
posting
01:34:02.380 --> 01:34:02.920
a product
01:34:04.220 --> 01:34:04.900
we'll
01:34:04.900 --> 01:34:05.340
be
01:34:05.340 --> 01:34:05.860
passing
01:34:05.860 --> 01:34:06.480
a payload
01:34:06.480 --> 01:34:07.100
over here
01:34:07.100 --> 01:34:07.900
if you see
01:34:07.900 --> 01:34:08.360
over here
01:34:08.360 --> 01:34:08.680
for
01:34:08.680 --> 01:34:09.440
post request
01:34:10.160 --> 01:34:10.740
we don't
01:34:10.740 --> 01:34:11.000
have
01:34:11.000 --> 01:34:11.260
any
01:34:11.260 --> 01:34:11.660
slash
01:34:11.660 --> 01:34:12.140
after
01:34:12.140 --> 01:34:12.500
product
01:34:12.500 --> 01:34:12.900
and
01:34:12.900 --> 01:34:13.240
payload
01:34:13.240 --> 01:34:13.900
so
01:34:13.900 --> 01:34:14.280
what I mean
01:34:14.280 --> 01:34:14.640
to say
01:34:14.640 --> 01:34:14.840
is
01:34:14.840 --> 01:34:15.620
basically
01:34:15.620 --> 01:34:16.040
payload
01:34:16.040 --> 01:34:16.620
is
01:34:16.620 --> 01:34:16.920
something
01:34:16.920 --> 01:34:17.260
we'll
01:34:17.260 --> 01:34:17.460
be
01:34:17.460 --> 01:34:17.640
giving
01:34:17.640 --> 01:34:18.040
inside
01:34:18.040 --> 01:34:18.380
the
01:34:18.380 --> 01:34:18.900
body
01:34:19.520 --> 01:34:20.160
so
01:34:20.160 --> 01:34:20.700
for this
01:34:20.700 --> 01:34:20.860
you need
01:34:20.860 --> 01:34:21.040
to
01:34:21.040 --> 01:34:21.400
understand
01:34:21.400 --> 01:34:21.800
one of
01:34:21.800 --> 01:34:21.920
the
01:34:21.920 --> 01:34:22.360
prerequisite
01:34:23.120 --> 01:34:23.800
like
01:34:23.800 --> 01:34:24.460
what are
01:34:24.460 --> 01:34:24.640
headers
01:34:26.080 --> 01:34:27.040
what are
01:34:27.040 --> 01:34:27.280
URA
01:34:29.100 --> 01:34:30.000
what are
01:34:30.000 --> 01:34:30.580
headers
01:34:31.840 --> 01:34:32.740
what is
01:34:32.740 --> 01:34:33.080
body
01:34:35.160 --> 01:34:35.960
so
01:34:35.960 --> 01:34:36.440
basically
01:34:36.440 --> 01:34:37.180
an URA
01:34:37.180 --> 01:34:37.780
is a
01:34:37.780 --> 01:34:38.220
location
01:34:38.220 --> 01:34:38.500
where
01:34:38.500 --> 01:34:38.780
you are
01:34:38.780 --> 01:34:39.120
hitting
01:34:39.120 --> 01:34:40.100
an
01:34:40.100 --> 01:34:40.400
API
01:34:40.400 --> 01:34:41.280
okay
01:34:41.280 --> 01:34:41.860
and
01:34:41.860 --> 01:34:42.040
the
01:34:42.040 --> 01:34:42.420
headers
01:34:42.420 --> 01:34:42.900
are
01:34:42.900 --> 01:34:43.120
some
01:34:43.120 --> 01:34:43.500
things
01:34:43.500 --> 01:34:44.320
that
01:34:44.320 --> 01:34:44.500
you're
01:34:44.500 --> 01:34:44.780
going to
01:34:44.780 --> 01:34:45.280
pass
01:34:45.280 --> 01:34:45.680
to
01:34:45.680 --> 01:34:45.940
that
01:34:45.940 --> 01:34:46.520
URA
01:34:46.520 --> 01:34:46.820
while
01:34:46.820 --> 01:34:47.260
you are
01:34:47.260 --> 01:34:47.520
hitting
01:34:47.520 --> 01:34:47.600
the
01:34:48.540 --> 01:34:48.900
web
01:34:48.900 --> 01:34:49.480
request
01:34:49.480 --> 01:34:50.080
and
01:34:50.880 --> 01:34:51.300
typically
01:34:51.300 --> 01:34:51.900
headers
01:34:51.900 --> 01:34:52.200
mostly
01:34:52.200 --> 01:34:52.820
consists of
01:34:52.820 --> 01:34:53.280
authentication
01:34:53.280 --> 01:34:53.840
authorization
01:34:53.840 --> 01:34:54.400
mechanisms
01:34:54.400 --> 01:34:55.040
and
01:34:55.720 --> 01:34:56.440
some
01:34:56.440 --> 01:34:56.860
of
01:34:56.860 --> 01:34:57.600
the
01:34:57.600 --> 01:34:58.160
and
01:34:58.160 --> 01:34:58.560
you'll
01:34:58.560 --> 01:34:58.700
be
01:34:58.700 --> 01:34:58.960
hitting
01:34:58.960 --> 01:34:59.580
this
01:34:59.580 --> 01:35:00.280
specific
01:35:00.280 --> 01:35:01.360
API request
01:35:01.360 --> 01:35:01.640
with the
01:35:01.640 --> 01:35:02.080
help of
01:35:02.080 --> 01:35:02.820
API client
01:35:02.820 --> 01:35:03.800
so
01:35:03.800 --> 01:35:04.840
API client
01:35:05.400 --> 01:35:06.260
in mostly
01:35:06.260 --> 01:35:06.940
you will be
01:35:06.940 --> 01:35:07.220
having
01:35:08.000 --> 01:35:08.600
postman
01:35:10.620 --> 01:35:11.560
let's just
01:35:11.560 --> 01:35:12.080
keep it under
01:35:12.080 --> 01:35:12.380
tool
01:35:12.380 --> 01:35:12.740
thing
01:35:12.740 --> 01:35:13.780
you have to
01:35:13.780 --> 01:35:14.120
understand
01:35:14.120 --> 01:35:14.520
postman
01:35:14.520 --> 01:35:17.180
as well
01:35:18.520 --> 01:35:19.120
so
01:35:19.120 --> 01:35:19.340
postman
01:35:19.340 --> 01:35:19.640
is a
01:35:19.640 --> 01:35:19.800
tool
01:35:19.800 --> 01:35:20.300
which is
01:35:20.300 --> 01:35:20.480
an
01:35:20.480 --> 01:35:21.000
API
01:35:21.000 --> 01:35:21.540
client
01:35:22.120 --> 01:35:22.520
which
01:35:22.520 --> 01:35:22.840
basically
01:35:23.760 --> 01:35:24.740
helps us to
01:35:24.740 --> 01:35:25.080
hit an
01:35:25.080 --> 01:35:25.380
API
01:35:25.380 --> 01:35:25.740
while
01:35:25.740 --> 01:35:26.040
testing
01:35:26.040 --> 01:35:26.120
it
01:35:27.020 --> 01:35:27.980
we have
01:35:27.980 --> 01:35:28.480
I mean
01:35:28.480 --> 01:35:28.800
I have
01:35:28.800 --> 01:35:29.080
created
01:35:29.080 --> 01:35:29.240
that
01:35:30.000 --> 01:35:30.720
one of
01:35:31.640 --> 01:35:32.240
the
01:35:32.240 --> 01:35:32.800
hands-on
01:35:32.800 --> 01:35:33.300
application
01:35:33.300 --> 01:35:33.720
as well
01:35:33.720 --> 01:35:34.360
hands-on
01:35:34.360 --> 01:35:34.800
is
01:35:34.800 --> 01:35:35.140
implementation
01:35:35.140 --> 01:35:35.480
as well
01:35:35.480 --> 01:35:36.360
for that
01:35:36.360 --> 01:35:36.920
for API
01:35:36.920 --> 01:35:37.640
for postman
01:35:38.320 --> 01:35:38.980
which is
01:35:38.980 --> 01:35:39.380
tightly
01:35:39.380 --> 01:35:39.680
coupled
01:35:39.680 --> 01:35:40.020
with the
01:35:40.020 --> 01:35:40.420
mule soft
01:35:41.760 --> 01:35:42.240
and
01:35:42.240 --> 01:35:42.600
yeah
01:35:42.600 --> 01:35:42.920
we'll be
01:35:42.920 --> 01:35:43.320
passing headers
01:35:43.320 --> 01:35:43.720
with that
01:35:43.720 --> 01:35:44.040
and
01:35:44.040 --> 01:35:44.560
the body
01:35:44.560 --> 01:35:44.920
is
01:35:44.920 --> 01:35:45.580
actual payload
01:35:45.580 --> 01:35:46.260
that we want to
01:35:46.260 --> 01:35:46.500
pass
01:35:46.500 --> 01:35:47.080
like
01:35:47.080 --> 01:35:47.620
the details
01:35:47.620 --> 01:35:48.440
of the
01:35:48.440 --> 01:35:48.820
product
01:35:49.360 --> 01:35:49.840
like
01:35:49.840 --> 01:35:50.160
the name
01:35:50.160 --> 01:35:50.460
of the
01:35:50.460 --> 01:35:50.700
product
01:35:50.700 --> 01:35:50.960
the
01:35:50.960 --> 01:35:51.240
description
01:35:51.240 --> 01:35:51.620
of the
01:35:51.620 --> 01:35:51.860
product
01:35:51.860 --> 01:35:52.240
and
01:35:52.240 --> 01:35:52.460
price
01:35:52.460 --> 01:35:52.840
of the
01:35:52.840 --> 01:35:53.060
product
01:35:53.060 --> 01:35:53.700
and all
01:35:53.700 --> 01:35:54.180
all those
01:35:54.180 --> 01:35:54.340
things
01:35:54.340 --> 01:35:54.720
we'll be
01:35:54.720 --> 01:35:54.900
providing
01:35:54.900 --> 01:35:55.600
over there
01:35:55.600 --> 01:35:56.060
inside the
01:35:56.060 --> 01:35:56.220
body
01:35:56.220 --> 01:35:56.620
itself
01:35:57.160 --> 01:35:57.640
and
01:35:57.640 --> 01:35:58.080
you also
01:35:58.080 --> 01:35:58.540
have this
01:35:58.540 --> 01:35:58.920
delete
01:36:00.340 --> 01:36:01.020
if you
01:36:01.020 --> 01:36:01.400
want to
01:36:01.400 --> 01:36:01.700
specify
01:36:01.700 --> 01:36:02.120
or
01:36:02.120 --> 01:36:02.560
delete
01:36:02.560 --> 01:36:03.500
a specific
01:36:03.500 --> 01:36:04.240
work
01:36:04.240 --> 01:36:05.020
inside the database
01:36:05.020 --> 01:36:05.640
then we will be
01:36:05.640 --> 01:36:06.060
hitting this
01:36:06.060 --> 01:36:06.600
delete API
01:36:06.600 --> 01:36:07.260
and then
01:36:08.660 --> 01:36:09.600
if you see
01:36:09.600 --> 01:36:10.060
over here
01:36:10.060 --> 01:36:10.540
put and
01:36:10.540 --> 01:36:10.900
post
01:36:10.900 --> 01:36:11.740
mostly
01:36:11.740 --> 01:36:12.200
does the
01:36:12.200 --> 01:36:12.700
same thing
01:36:12.700 --> 01:36:13.400
then what
01:36:13.400 --> 01:36:13.900
exactly is the
01:36:13.900 --> 01:36:14.060
difference
01:36:14.060 --> 01:36:14.320
between
01:36:14.320 --> 01:36:14.740
post and
01:36:14.740 --> 01:36:15.160
put and
01:36:15.160 --> 01:36:15.460
post
01:36:15.460 --> 01:36:16.280
so basically
01:36:16.280 --> 01:36:16.920
put
01:36:18.740 --> 01:36:19.260
basically
01:36:19.260 --> 01:36:19.720
doesn't
01:36:19.720 --> 01:36:20.500
care about
01:36:20.500 --> 01:36:21.100
what exactly
01:36:21.100 --> 01:36:21.420
is
01:36:21.420 --> 01:36:21.680
already
01:36:21.680 --> 01:36:22.380
there
01:36:22.380 --> 01:36:23.080
inside the
01:36:23.080 --> 01:36:23.520
system
01:36:23.520 --> 01:36:24.460
you don't
01:36:24.460 --> 01:36:24.880
care about
01:36:24.880 --> 01:36:25.300
that
01:36:25.300 --> 01:36:25.980
you don't
01:36:25.980 --> 01:36:26.360
care about
01:36:26.360 --> 01:36:26.460
them
01:36:27.100 --> 01:36:27.620
whatever
01:36:27.620 --> 01:36:28.220
you care
01:36:28.220 --> 01:36:28.580
I mean
01:36:28.580 --> 01:36:28.820
whatever
01:36:28.820 --> 01:36:29.280
you provide
01:36:29.280 --> 01:36:29.600
to
01:36:29.600 --> 01:36:29.820
put
01:36:29.820 --> 01:36:30.300
as a
01:36:30.300 --> 01:36:30.580
payload
01:36:31.280 --> 01:36:32.120
it just
01:36:32.120 --> 01:36:32.540
takes them
01:36:33.500 --> 01:36:33.980
to the
01:36:34.540 --> 01:36:34.980
if it is
01:36:34.980 --> 01:36:35.440
I mean
01:36:35.440 --> 01:36:36.000
if there are
01:36:36.000 --> 01:36:36.220
already
01:36:36.220 --> 01:36:36.780
resources that
01:36:36.780 --> 01:36:37.080
are already
01:36:37.080 --> 01:36:37.400
present
01:36:37.400 --> 01:36:37.960
inside
01:36:38.700 --> 01:36:39.020
database
01:36:39.020 --> 01:36:39.840
it just
01:36:39.840 --> 01:36:40.240
overrides
01:36:40.240 --> 01:36:40.580
them
01:36:41.240 --> 01:36:41.880
without
01:36:41.880 --> 01:36:42.540
caring
01:36:42.540 --> 01:36:42.840
about
01:36:42.840 --> 01:36:43.220
them
01:36:43.220 --> 01:36:43.680
but
01:36:43.680 --> 01:36:44.100
post is
01:36:44.100 --> 01:36:44.560
not like
01:36:44.560 --> 01:36:45.080
that
01:36:45.080 --> 01:36:45.700
post provides
01:36:45.700 --> 01:36:46.040
the
01:36:46.040 --> 01:36:46.360
appending
01:36:46.360 --> 01:36:46.920
operation
01:36:46.920 --> 01:36:47.280
rather
01:36:47.280 --> 01:36:47.640
than
01:36:47.640 --> 01:36:48.040
overwriting
01:36:48.040 --> 01:36:48.560
operation
01:36:49.180 --> 01:36:49.500
so one
01:36:49.500 --> 01:36:49.900
has to
01:36:50.540 --> 01:36:50.600
do
01:36:50.600 --> 01:36:51.100
more
01:36:51.100 --> 01:36:51.460
careful
01:36:51.460 --> 01:36:51.900
operations
01:36:51.900 --> 01:36:52.320
with the
01:36:52.320 --> 01:36:52.480
post
01:36:53.100 --> 01:36:53.320
put
01:36:53.320 --> 01:36:53.780
API
01:36:53.780 --> 01:36:54.500
when it
01:37:03.500 --> 01:37:04.000
we're
01:37:04.000 --> 01:37:04.160
good
01:37:04.160 --> 01:37:05.260
to go
01:37:07.160 --> 01:37:07.840
okay
01:37:07.840 --> 01:37:08.440
cool
01:37:08.440 --> 01:37:09.000
yeah
01:37:09.000 --> 01:37:09.740
so
01:37:09.740 --> 01:37:10.080
let's
01:37:10.080 --> 01:37:10.700
come to
01:37:10.700 --> 01:37:10.980
raml
01:37:10.980 --> 01:37:11.500
definitions
01:37:11.500 --> 01:37:12.360
and
01:37:12.360 --> 01:37:13.140
how these
01:37:13.140 --> 01:37:13.460
things
01:37:13.460 --> 01:37:13.780
works
01:37:13.780 --> 01:37:14.340
with raml
01:37:14.340 --> 01:37:14.700
basically
01:37:15.900 --> 01:37:16.580
so
01:37:16.580 --> 01:37:16.980
we wanted
01:37:16.980 --> 01:37:17.320
to
01:37:17.320 --> 01:37:17.840
create
01:37:17.840 --> 01:37:18.160
a
01:37:18.160 --> 01:37:18.400
mule soft
01:37:18.400 --> 01:37:19.200
application
01:37:19.900 --> 01:37:20.520
which
01:37:20.520 --> 01:37:20.840
does
01:37:20.840 --> 01:37:21.140
all
01:37:21.140 --> 01:37:21.360
these
01:37:21.360 --> 01:37:21.500
things
01:37:22.660 --> 01:37:23.240
whatever
01:37:23.240 --> 01:37:23.680
I told
01:37:23.680 --> 01:37:23.980
right
01:37:23.980 --> 01:37:24.540
now
01:37:24.540 --> 01:37:25.000
with the
01:37:25.000 --> 01:37:25.180
help
01:37:25.180 --> 01:37:25.680
of
01:37:25.680 --> 01:37:25.740
just
01:37:26.740 --> 01:37:27.140
yaml
01:37:27.140 --> 01:37:27.340
based
01:37:27.340 --> 01:37:27.780
syntax
01:37:27.780 --> 01:37:28.620
that's
01:37:28.620 --> 01:37:28.740
how
01:37:28.740 --> 01:37:29.080
we'll
01:37:29.080 --> 01:37:29.460
be
01:37:29.460 --> 01:37:30.180
designing
01:37:31.120 --> 01:37:31.800
our
01:37:31.800 --> 01:37:32.340
APIs
01:37:32.340 --> 01:37:32.900
over here
01:37:33.500 --> 01:37:33.880
over
01:37:35.060 --> 01:37:35.740
here
01:37:35.740 --> 01:37:36.360
so
01:37:36.360 --> 01:37:36.800
basically
01:37:36.800 --> 01:37:37.300
we have
01:37:37.300 --> 01:37:37.580
this
01:37:37.580 --> 01:37:37.860
parent
01:37:37.860 --> 01:37:38.100
route
01:37:38.100 --> 01:37:39.100
so
01:37:39.100 --> 01:37:39.400
inside
01:37:39.400 --> 01:37:39.660
the
01:37:39.660 --> 01:37:40.280
raml
01:37:40.280 --> 01:37:40.880
we have
01:37:40.880 --> 01:37:41.060
the
01:37:41.060 --> 01:37:41.400
syntax
01:37:41.400 --> 01:37:41.760
called
01:37:41.760 --> 01:37:42.140
parent
01:37:42.140 --> 01:37:42.400
route
01:37:42.400 --> 01:37:42.900
and
01:37:42.900 --> 01:37:43.220
child
01:37:43.220 --> 01:37:43.560
route
01:37:44.140 --> 01:37:44.580
so
01:37:44.580 --> 01:37:44.920
basically
01:37:44.920 --> 01:37:45.320
this
01:37:45.320 --> 01:37:45.600
parent
01:37:45.600 --> 01:37:46.040
route
01:37:46.040 --> 01:37:46.400
consists
01:37:46.400 --> 01:37:46.680
of
01:37:46.680 --> 01:37:48.620
all the
01:37:48.620 --> 01:37:49.260
responses
01:37:49.260 --> 01:37:49.620
or
01:37:49.620 --> 01:37:50.180
descriptions
01:37:51.020 --> 01:37:51.400
that
01:37:51.400 --> 01:37:51.760
we're
01:37:51.760 --> 01:37:52.060
to
01:37:52.060 --> 01:37:52.380
provide
01:37:52.380 --> 01:37:53.100
and
01:37:53.100 --> 01:37:53.340
the
01:37:53.340 --> 01:37:53.520
child
01:37:53.520 --> 01:37:53.760
routes
01:37:53.760 --> 01:37:53.980
will
01:37:53.980 --> 01:37:54.520
be
01:37:54.520 --> 01:37:54.840
appending
01:37:54.840 --> 01:37:55.120
to
01:37:55.120 --> 01:37:55.560
the
01:37:55.560 --> 01:37:56.220
parent
01:37:56.220 --> 01:37:56.520
route
01:37:56.520 --> 01:37:57.200
so
01:37:57.200 --> 01:37:57.540
let's
01:37:57.540 --> 01:37:57.820
say
01:37:57.820 --> 01:37:58.480
we have
01:37:58.480 --> 01:37:59.040
categories
01:38:00.300 --> 01:38:00.980
so
01:38:00.980 --> 01:38:01.220
let's
01:38:01.220 --> 01:38:01.320
say
01:38:01.320 --> 01:38:01.780
we have
01:38:01.780 --> 01:38:02.040
few
01:38:02.040 --> 01:38:02.540
categories
01:38:02.540 --> 01:38:03.100
here
01:38:03.100 --> 01:38:03.480
and
01:38:04.120 --> 01:38:04.640
user
01:38:04.640 --> 01:38:05.180
wants to
01:38:05.180 --> 01:38:05.380
get
01:38:05.380 --> 01:38:05.860
categories
01:38:05.860 --> 01:38:06.780
so
01:38:06.780 --> 01:38:07.140
in that
01:38:07.880 --> 01:38:08.400
scenario
01:38:08.400 --> 01:38:08.860
let's
01:38:08.860 --> 01:38:08.960
say
01:38:08.960 --> 01:38:09.220
user
01:38:09.220 --> 01:38:09.420
hits
01:38:10.420 --> 01:38:10.940
slash
01:38:10.940 --> 01:38:11.640
categories
01:38:12.560 --> 01:38:13.080
and
01:38:13.080 --> 01:38:13.260
he
01:38:13.260 --> 01:38:13.460
don't
01:38:13.460 --> 01:38:13.640
care
01:38:13.640 --> 01:38:13.740
about
01:38:15.600 --> 01:38:16.120
what
01:38:16.120 --> 01:38:16.660
about
01:38:16.660 --> 01:38:17.040
the
01:38:17.040 --> 01:38:17.260
categories
01:38:17.260 --> 01:38:17.620
that are
01:38:17.620 --> 01:38:17.780
already
01:38:17.780 --> 01:38:18.000
present
01:38:18.000 --> 01:38:18.220
in
01:38:18.220 --> 01:38:18.460
database
01:38:18.460 --> 01:38:18.740
and
01:38:18.740 --> 01:38:19.060
all
01:38:19.060 --> 01:38:19.340
he
01:38:19.340 --> 01:38:19.500
just
01:38:19.500 --> 01:38:19.600
wanted
01:38:19.600 --> 01:38:19.860
to
01:38:19.860 --> 01:38:19.980
get
01:38:19.980 --> 01:38:20.240
the
01:38:20.240 --> 01:38:20.560
categories
01:38:20.560 --> 01:38:21.400
so
01:38:21.400 --> 01:38:21.660
if
01:38:21.660 --> 01:38:21.840
you
01:38:21.840 --> 01:38:22.020
see
01:38:22.020 --> 01:38:22.160
you
01:38:22.160 --> 01:38:22.260
over
01:38:22.260 --> 01:38:22.540
here
01:38:22.540 --> 01:38:22.900
we have
01:38:22.900 --> 01:38:23.420
implemented
01:38:23.420 --> 01:38:23.760
get
01:38:23.760 --> 01:38:23.980
based
01:38:25.740 --> 01:38:26.260
description
01:38:27.080 --> 01:38:27.600
so
01:38:27.600 --> 01:38:28.480
it
01:38:29.100 --> 01:38:29.620
already
01:38:29.620 --> 01:38:30.080
should be
01:38:32.920 --> 01:38:33.480
I mean
01:38:33.500 --> 01:38:34.220
get request
01:38:35.340 --> 01:38:36.000
and then
01:38:36.000 --> 01:38:36.480
we are providing
01:38:36.480 --> 01:38:36.840
the
01:38:36.840 --> 01:38:37.200
description
01:38:37.200 --> 01:38:38.020
what
01:38:39.100 --> 01:38:39.780
exactly
01:38:39.780 --> 01:38:39.900
this
01:38:40.760 --> 01:38:41.300
API
01:38:42.860 --> 01:38:43.040
API
01:38:43.040 --> 01:38:43.740
route
01:38:43.740 --> 01:38:44.480
does
01:38:44.480 --> 01:38:45.680
basically
01:38:45.680 --> 01:38:47.020
it helps
01:38:47.020 --> 01:38:47.320
us
01:38:47.320 --> 01:38:47.520
to
01:38:47.520 --> 01:38:47.700
get
01:38:47.700 --> 01:38:48.300
the
01:38:48.300 --> 01:38:48.680
categories
01:38:48.680 --> 01:38:49.280
so
01:38:49.280 --> 01:38:49.820
this
01:38:49.820 --> 01:38:50.180
display
01:38:50.180 --> 01:38:50.600
name
01:38:50.600 --> 01:38:51.400
is
01:38:51.400 --> 01:38:51.900
described
01:38:51.900 --> 01:38:52.220
under
01:38:53.660 --> 01:38:54.580
our
01:38:54.580 --> 01:38:54.860
Anypoint
01:38:54.860 --> 01:38:55.380
platform
01:38:55.380 --> 01:38:55.740
basically
01:38:56.300 --> 01:38:56.720
once
01:38:56.720 --> 01:38:57.000
we
01:38:57.000 --> 01:38:57.580
deployed
01:38:57.580 --> 01:38:58.320
or
01:38:58.320 --> 01:38:58.580
once
01:38:58.580 --> 01:38:58.720
we
01:38:58.720 --> 01:38:58.900
run
01:38:58.900 --> 01:38:59.400
this
01:38:59.400 --> 01:39:00.200
using
01:39:01.020 --> 01:39:01.560
Anypoint
01:39:01.560 --> 01:39:01.880
Studio
01:39:01.880 --> 01:39:02.160
we'll
01:39:02.160 --> 01:39:02.300
be
01:39:02.300 --> 01:39:02.520
getting
01:39:02.520 --> 01:39:02.860
much
01:39:02.860 --> 01:39:03.320
more
01:39:03.500 --> 01:39:04.480
understanding
01:39:04.480 --> 01:39:04.800
over
01:39:04.800 --> 01:39:05.140
what
01:39:05.140 --> 01:39:05.480
this
01:39:05.480 --> 01:39:05.700
display
01:39:05.700 --> 01:39:05.900
name
01:39:05.900 --> 01:39:06.140
and
01:39:06.140 --> 01:39:06.340
what
01:39:06.340 --> 01:39:06.640
this
01:39:06.640 --> 01:39:06.780
query
01:39:06.780 --> 01:39:07.140
parameters
01:39:07.140 --> 01:39:07.800
are
01:39:08.460 --> 01:39:08.840
but
01:39:08.840 --> 01:39:09.620
like
01:39:09.620 --> 01:39:09.820
right
01:39:09.820 --> 01:39:10.120
now
01:39:10.120 --> 01:39:10.400
the
01:39:10.400 --> 01:39:10.540
query
01:39:10.540 --> 01:39:10.960
parameters
01:39:10.960 --> 01:39:11.220
are
01:39:11.220 --> 01:39:11.260
like
01:39:12.220 --> 01:39:12.860
let's
01:39:12.860 --> 01:39:13.160
say
01:39:13.160 --> 01:39:13.740
for
01:39:13.740 --> 01:39:14.040
this
01:39:14.040 --> 01:39:14.360
URL
01:39:17.440 --> 01:39:18.080
if
01:39:28.640 --> 01:39:29.280
you
01:39:33.500 --> 01:39:34.020
get
01:39:34.020 --> 01:39:34.380
search
01:39:34.380 --> 01:39:34.900
parameters
01:39:34.900 --> 01:39:35.600
right
01:39:35.600 --> 01:39:36.080
so
01:39:36.080 --> 01:39:36.600
the search
01:39:36.600 --> 01:39:37.320
search key
01:39:37.320 --> 01:39:37.760
and then
01:39:37.760 --> 01:39:37.960
search
01:39:37.960 --> 01:39:38.420
value
01:39:40.000 --> 01:39:40.600
even
01:39:40.600 --> 01:39:41.140
though
01:39:41.140 --> 01:39:41.540
I mean
01:39:41.540 --> 01:39:41.860
YouTube
01:39:41.860 --> 01:39:42.180
works
01:39:42.180 --> 01:39:42.480
I mean
01:39:42.480 --> 01:39:42.740
the
01:39:42.740 --> 01:39:42.980
URL
01:39:42.980 --> 01:39:43.620
works
01:39:44.140 --> 01:39:44.840
let's say
01:39:44.840 --> 01:39:45.240
if we
01:39:45.240 --> 01:39:45.420
don't
01:39:45.420 --> 01:39:45.900
pass any
01:39:45.900 --> 01:39:46.120
these
01:39:46.120 --> 01:39:46.600
parameters
01:39:46.600 --> 01:39:47.280
let's
01:39:47.280 --> 01:39:47.820
say
01:39:48.380 --> 01:39:49.120
we just
01:39:49.120 --> 01:39:49.520
did not
01:39:49.520 --> 01:39:49.920
pass any
01:39:49.920 --> 01:39:50.240
value
01:39:50.240 --> 01:39:51.000
over here
01:39:51.000 --> 01:39:51.440
so
01:39:51.440 --> 01:39:51.740
it's
01:39:51.740 --> 01:39:51.820
just
01:39:52.900 --> 01:39:53.680
there is
01:39:53.680 --> 01:39:53.860
a
01:39:54.540 --> 01:39:55.140
fallback
01:39:55.140 --> 01:39:55.820
page
01:39:55.820 --> 01:39:56.200
for this
01:39:56.200 --> 01:39:56.440
to
01:39:56.440 --> 01:39:56.640
handle
01:39:56.640 --> 01:39:56.940
this
01:39:56.940 --> 01:39:57.200
request
01:39:57.200 --> 01:39:58.060
so that
01:39:58.060 --> 01:39:58.720
these are
01:39:58.720 --> 01:39:58.900
called
01:39:58.900 --> 01:39:59.420
as
01:39:59.420 --> 01:39:59.620
query
01:39:59.620 --> 01:40:00.560
parameters
01:40:00.560 --> 01:40:01.340
inside
01:40:01.340 --> 01:40:01.780
API
01:40:01.780 --> 01:40:02.360
languages
01:40:02.360 --> 01:40:03.100
basically
01:40:03.500 --> 01:40:04.060
so
01:40:04.060 --> 01:40:04.520
these
01:40:04.520 --> 01:40:04.720
query
01:40:04.720 --> 01:40:05.160
parameters
01:40:05.160 --> 01:40:05.440
are
01:40:05.440 --> 01:40:05.980
like
01:40:05.980 --> 01:40:06.300
a
01:40:06.300 --> 01:40:06.580
string
01:40:06.580 --> 01:40:07.640
I mean
01:40:07.640 --> 01:40:08.540
we'll be describing
01:40:08.540 --> 01:40:08.980
a query
01:40:08.980 --> 01:40:09.340
parameters
01:40:09.340 --> 01:40:09.920
over here
01:40:09.920 --> 01:40:10.260
so
01:40:10.260 --> 01:40:11.000
let's say
01:40:11.000 --> 01:40:11.480
for
01:40:11.480 --> 01:40:11.680
this
01:40:11.680 --> 01:40:11.980
specific
01:40:11.980 --> 01:40:12.480
implementation
01:40:12.480 --> 01:40:13.400
we have
01:40:13.400 --> 01:40:13.760
this
01:40:13.760 --> 01:40:14.080
name
01:40:14.080 --> 01:40:14.900
as one
01:40:14.900 --> 01:40:15.240
of the
01:40:15.240 --> 01:40:15.360
query
01:40:15.360 --> 01:40:15.840
parameter
01:40:15.840 --> 01:40:16.420
and
01:40:16.420 --> 01:40:17.560
it is
01:40:17.560 --> 01:40:17.960
optional
01:40:17.960 --> 01:40:18.060
thing
01:40:18.860 --> 01:40:19.440
let's say
01:40:19.440 --> 01:40:19.620
for
01:40:19.620 --> 01:40:19.960
example
01:40:19.960 --> 01:40:20.400
YouTube
01:40:20.940 --> 01:40:21.580
we have
01:40:21.580 --> 01:40:22.060
this
01:40:22.060 --> 01:40:22.200
query
01:40:22.200 --> 01:40:22.600
parameter
01:40:24.560 --> 01:40:25.240
as
01:40:25.980 --> 01:40:26.460
chalk
01:40:26.460 --> 01:40:27.040
as
01:40:27.040 --> 01:40:27.220
I mean
01:40:27.220 --> 01:40:27.480
the
01:40:27.480 --> 01:40:27.720
search
01:40:27.720 --> 01:40:27.940
query
01:40:27.940 --> 01:40:28.320
as
01:40:28.320 --> 01:40:28.540
query
01:40:28.540 --> 01:40:29.080
parameter
01:40:29.080 --> 01:40:30.160
if we
01:40:30.160 --> 01:40:30.440
want
01:40:30.440 --> 01:40:30.900
like you
01:40:30.900 --> 01:40:31.140
know
01:40:31.140 --> 01:40:31.520
replicate
01:40:31.520 --> 01:40:31.860
the
01:40:31.860 --> 01:40:32.120
same
01:40:32.120 --> 01:40:32.660
thing
01:40:32.660 --> 01:40:33.100
inside
01:40:33.100 --> 01:40:33.480
R
01:40:33.480 --> 01:40:33.880
specific
01:40:33.880 --> 01:40:34.380
implementation
01:40:34.380 --> 01:40:35.060
the
01:40:35.060 --> 01:40:35.380
name
01:40:35.380 --> 01:40:36.140
can be
01:40:36.140 --> 01:40:36.620
replaced by
01:40:36.620 --> 01:40:37.180
search query
01:40:37.180 --> 01:40:37.940
so this is
01:40:37.940 --> 01:40:38.120
like
01:40:38.120 --> 01:40:38.420
read-only
01:40:38.420 --> 01:40:38.940
editor
01:40:38.940 --> 01:40:39.840
but
01:40:39.840 --> 01:40:40.300
yeah
01:40:40.300 --> 01:40:40.420
name
01:40:40.420 --> 01:40:40.840
can be
01:40:40.840 --> 01:40:41.460
replaced by
01:40:41.460 --> 01:40:41.860
search
01:40:41.860 --> 01:40:42.300
query
01:40:42.300 --> 01:40:42.940
you got
01:40:42.940 --> 01:40:43.300
right
01:40:43.300 --> 01:40:43.900
so
01:40:43.900 --> 01:40:44.740
how that
01:40:44.740 --> 01:40:45.180
how it
01:40:45.180 --> 01:40:45.400
works
01:40:45.400 --> 01:40:45.940
basically
01:40:45.940 --> 01:40:46.640
you'll
01:40:46.640 --> 01:40:46.860
be
01:40:46.860 --> 01:40:47.140
decide
01:40:47.140 --> 01:40:47.480
I mean
01:40:47.480 --> 01:40:47.740
you'll
01:40:47.740 --> 01:40:47.920
be
01:40:47.920 --> 01:40:48.160
designing
01:40:48.160 --> 01:40:48.580
these
01:40:48.580 --> 01:40:48.900
YouTube
01:40:48.900 --> 01:40:49.720
implementations
01:40:49.720 --> 01:40:50.060
with the
01:40:50.060 --> 01:40:50.200
help of
01:40:51.500 --> 01:40:51.740
this
01:40:51.740 --> 01:40:51.980
Mule
01:40:51.980 --> 01:40:52.820
software
01:40:52.820 --> 01:40:53.480
queries
01:40:53.480 --> 01:40:54.060
languages
01:40:54.060 --> 01:40:54.460
actually
01:40:54.460 --> 01:40:55.180
and then
01:40:55.180 --> 01:40:55.560
what are
01:40:55.560 --> 01:40:55.720
the
01:40:55.720 --> 01:40:56.020
responses
01:40:56.020 --> 01:40:56.300
that you
01:40:56.300 --> 01:40:56.700
wanted to
01:40:56.700 --> 01:40:57.000
provide
01:40:57.640 --> 01:40:58.460
let's say
01:40:58.460 --> 01:40:59.020
here
01:40:59.020 --> 01:40:59.780
I did not
01:40:59.780 --> 01:40:59.980
provide
01:40:59.980 --> 01:41:00.120
any
01:41:00.820 --> 01:41:01.240
response
01:41:01.240 --> 01:41:01.660
over here
01:41:01.660 --> 01:41:02.140
and
01:41:02.140 --> 01:41:02.680
it just
01:41:02.680 --> 01:41:03.460
fall back to
01:41:03.480 --> 01:41:04.360
no results found
01:41:04.360 --> 01:41:04.900
page
01:41:04.900 --> 01:41:05.400
but
01:41:06.980 --> 01:41:07.900
let's say
01:41:07.900 --> 01:41:08.220
if I
01:41:08.220 --> 01:41:08.760
have provided
01:41:09.920 --> 01:41:10.620
like
01:41:10.620 --> 01:41:11.240
write
01:41:11.240 --> 01:41:11.780
query
01:41:13.140 --> 01:41:13.920
if I
01:41:13.920 --> 01:41:14.200
go to
01:41:14.200 --> 01:41:14.580
the developer
01:41:14.580 --> 01:41:15.120
tools
01:41:15.120 --> 01:41:15.600
again
01:41:15.600 --> 01:41:16.300
you see the
01:41:16.300 --> 01:41:16.720
status
01:41:16.720 --> 01:41:17.000
like
01:41:17.000 --> 01:41:17.320
200
01:41:17.320 --> 01:41:17.780
status
01:41:18.280 --> 01:41:19.000
how exactly
01:41:19.000 --> 01:41:19.480
is this
01:41:19.480 --> 01:41:20.000
implemented
01:41:20.000 --> 01:41:20.860
it with the
01:41:20.860 --> 01:41:21.280
help of
01:41:21.280 --> 01:41:21.480
this one
01:41:23.160 --> 01:41:23.800
the response
01:41:23.800 --> 01:41:24.100
status
01:41:24.100 --> 01:41:24.880
200
01:41:25.560 --> 01:41:25.920
so
01:41:25.920 --> 01:41:26.580
basically
01:41:27.460 --> 01:41:27.480
in
01:41:28.960 --> 01:41:30.220
you might
01:41:30.220 --> 01:41:31.540
you might
01:41:31.540 --> 01:41:32.240
know about
01:41:32.240 --> 01:41:32.820
404
01:41:32.820 --> 01:41:33.100
status
01:41:33.100 --> 01:41:34.240
page not found
01:41:34.240 --> 01:41:34.880
while
01:41:34.880 --> 01:41:35.440
navigating
01:41:35.440 --> 01:41:35.980
in the
01:41:35.980 --> 01:41:36.320
internet
01:41:37.260 --> 01:41:37.880
that is
01:41:38.540 --> 01:41:39.060
globally
01:41:39.060 --> 01:41:39.540
known
01:41:39.540 --> 01:41:40.040
a response
01:41:40.040 --> 01:41:40.400
code
01:41:40.400 --> 01:41:41.140
apart from
01:41:41.140 --> 01:41:41.400
those
01:41:41.400 --> 01:41:41.760
response
01:41:41.760 --> 01:41:42.120
codes
01:41:42.620 --> 01:41:43.120
we have
01:41:43.120 --> 01:41:43.620
lot of
01:41:43.620 --> 01:41:43.900
response
01:41:43.900 --> 01:41:44.060
codes
01:41:45.360 --> 01:41:46.400
couple of
01:41:46.400 --> 01:41:46.700
response
01:41:46.700 --> 01:41:47.020
codes are
01:41:48.720 --> 01:41:49.460
2x6
01:41:53.340 --> 01:41:54.080
3x6
01:41:57.660 --> 01:41:58.460
these are
01:41:58.460 --> 01:41:59.300
prerequisite
01:42:01.180 --> 01:42:01.920
okay
01:42:01.920 --> 01:42:02.760
so
01:42:02.760 --> 01:42:03.620
2x6
01:42:03.620 --> 01:42:04.080
series
01:42:04.080 --> 01:42:05.280
it corresponds
01:42:05.280 --> 01:42:05.720
to the
01:42:05.720 --> 01:42:06.380
success
01:42:06.380 --> 01:42:07.180
responses
01:42:07.180 --> 01:42:08.240
so basically
01:42:08.240 --> 01:42:08.900
whenever
01:42:08.900 --> 01:42:10.000
let's say
01:42:10.000 --> 01:42:10.380
you hit
01:42:10.380 --> 01:42:10.820
an API
01:42:10.820 --> 01:42:11.700
and
01:42:11.700 --> 01:42:12.020
you got
01:42:12.020 --> 01:42:12.600
a response
01:42:13.860 --> 01:42:14.440
so
01:42:14.440 --> 01:42:15.500
you should
01:42:15.500 --> 01:42:15.640
tell
01:42:16.460 --> 01:42:17.020
caller
01:42:17.020 --> 01:42:17.880
the person
01:42:17.880 --> 01:42:18.380
who calls
01:42:18.380 --> 01:42:18.920
this API
01:42:18.920 --> 01:42:19.320
that
01:42:20.040 --> 01:42:20.760
everything is
01:42:20.760 --> 01:42:20.980
done
01:42:21.600 --> 01:42:22.180
and
01:42:22.180 --> 01:42:22.600
you got
01:42:22.600 --> 01:42:23.220
a response
01:42:23.220 --> 01:42:24.500
so that
01:42:24.500 --> 01:42:25.080
is the
01:42:25.080 --> 01:42:25.820
specific response
01:42:25.820 --> 01:42:26.200
code that
01:42:26.200 --> 01:42:26.420
we're
01:42:26.420 --> 01:42:26.720
going to be
01:42:26.720 --> 01:42:27.060
delivering
01:42:27.060 --> 01:42:27.760
so
01:42:27.760 --> 01:42:28.260
since this
01:42:28.260 --> 01:42:28.520
is a
01:42:28.520 --> 01:42:29.400
get request
01:42:29.400 --> 01:42:30.500
mostly
01:42:30.500 --> 01:42:30.980
for most
01:42:30.980 --> 01:42:31.240
of the
01:42:31.240 --> 01:42:31.660
get request
01:42:31.660 --> 01:42:32.200
it will be
01:42:32.760 --> 01:42:33.460
200
01:42:33.460 --> 01:42:34.440
response
01:42:34.440 --> 01:42:34.740
code
01:42:34.740 --> 01:42:35.320
let's say
01:42:35.320 --> 01:42:36.160
for post request
01:42:36.920 --> 01:42:37.420
we have
01:42:37.420 --> 01:42:38.140
this 201
01:42:38.140 --> 01:42:39.200
response code
01:42:39.200 --> 01:42:39.980
201
01:42:39.980 --> 01:42:40.840
stands for
01:42:40.840 --> 01:42:41.500
our
01:42:41.500 --> 01:42:41.780
resource
01:42:41.780 --> 01:42:42.160
created
01:42:42.840 --> 01:42:43.480
basically
01:42:48.900 --> 01:42:49.540
so
01:42:49.540 --> 01:42:49.920
it's like
01:42:49.920 --> 01:42:50.360
one of the
01:42:50.360 --> 01:42:50.760
it is also
01:42:50.760 --> 01:42:51.100
one of the
01:42:51.100 --> 01:42:51.420
positive
01:42:51.420 --> 01:42:52.100
response code
01:42:52.100 --> 01:42:53.000
all the
01:42:53.000 --> 01:42:53.300
response
01:42:53.300 --> 01:42:53.720
codes that
01:42:53.720 --> 01:42:54.020
are
01:42:54.020 --> 01:42:54.480
present in
01:42:54.480 --> 01:42:55.040
2x6
01:42:55.040 --> 01:42:55.960
2x6
01:42:55.960 --> 01:42:56.440
range
01:42:56.440 --> 01:42:57.060
they're
01:42:57.060 --> 01:42:57.240
just
01:42:57.240 --> 01:42:57.580
positive
01:42:57.580 --> 01:42:58.220
response code
01:43:00.820 --> 01:43:01.460
it
01:43:02.940 --> 01:43:04.040
we can have
01:43:10.460 --> 01:43:11.100
so
01:43:11.100 --> 01:43:11.780
these are
01:43:11.780 --> 01:43:12.400
history status
01:43:12.400 --> 01:43:12.740
code
01:43:12.740 --> 01:43:13.300
as I'm
01:43:13.300 --> 01:43:13.460
told
01:43:13.460 --> 01:43:14.020
already
01:43:14.020 --> 01:43:14.660
like
01:43:14.660 --> 01:43:15.260
200 is
01:43:16.340 --> 01:43:16.980
like
01:43:18.120 --> 01:43:18.760
created
01:43:18.760 --> 01:43:19.420
the resource
01:43:19.420 --> 01:43:19.720
created
01:43:19.720 --> 01:43:20.160
one
01:43:20.160 --> 01:43:20.840
200 is
01:43:20.840 --> 01:43:21.420
okay one
01:43:21.420 --> 01:43:22.000
okay in
01:43:22.000 --> 01:43:22.720
this sense
01:43:23.440 --> 01:43:24.360
it doesn't
01:43:24.360 --> 01:43:24.800
have any
01:43:24.800 --> 01:43:25.000
meaning
01:43:25.000 --> 01:43:26.540
with it
01:43:26.540 --> 01:43:27.420
for 200
01:43:27.420 --> 01:43:27.820
response
01:43:27.820 --> 01:43:28.000
codes
01:43:28.000 --> 01:43:28.360
we should
01:43:28.360 --> 01:43:28.700
always
01:43:28.700 --> 01:43:29.020
be looking
01:43:29.020 --> 01:43:29.340
at
01:43:29.340 --> 01:43:30.080
the body
01:43:30.080 --> 01:43:30.780
what
01:43:30.780 --> 01:43:31.220
exactly
01:43:31.220 --> 01:43:31.500
is
01:43:31.500 --> 01:43:31.740
written
01:43:31.740 --> 01:43:32.340
for us
01:43:32.760 --> 01:43:33.420
in our
01:43:33.420 --> 01:43:34.020
scenario
01:43:34.020 --> 01:43:34.820
let's say
01:43:34.820 --> 01:43:35.280
we have
01:43:35.280 --> 01:43:35.580
designed
01:43:35.580 --> 01:43:35.820
our
01:43:35.820 --> 01:43:36.280
application
01:43:36.280 --> 01:43:37.100
to provide
01:43:37.100 --> 01:43:37.320
a
01:43:37.320 --> 01:43:37.940
response
01:43:37.940 --> 01:43:38.520
for a
01:43:38.520 --> 01:43:39.060
get request
01:43:39.720 --> 01:43:40.280
we have
01:43:40.280 --> 01:43:40.680
designed
01:43:40.680 --> 01:43:41.060
our
01:43:41.060 --> 01:43:41.460
application
01:43:41.460 --> 01:43:41.900
in such
01:43:41.900 --> 01:43:42.020
a
01:43:42.020 --> 01:43:42.100
way
01:43:42.100 --> 01:43:42.200
that
01:43:43.300 --> 01:43:44.020
let's
01:43:44.020 --> 01:43:44.400
say
01:43:44.400 --> 01:43:45.220
for
01:43:45.220 --> 01:43:45.500
this
01:43:45.500 --> 01:43:45.840
specific
01:43:45.840 --> 01:43:46.180
endpoint
01:43:46.180 --> 01:43:46.800
it is
01:43:46.800 --> 01:43:47.180
categories
01:43:47.180 --> 01:43:47.700
response
01:43:47.700 --> 01:43:48.140
code
01:43:48.140 --> 01:43:48.720
so
01:43:48.720 --> 01:43:48.920
we'll
01:43:48.920 --> 01:43:49.100
be
01:43:49.100 --> 01:43:49.300
going
01:43:49.300 --> 01:43:49.600
over
01:43:49.600 --> 01:43:50.100
here
01:43:50.100 --> 01:43:50.480
and
01:43:50.480 --> 01:43:50.640
hitting
01:43:50.640 --> 01:43:50.900
an
01:43:50.900 --> 01:43:51.140
API
01:43:51.140 --> 01:43:51.840
and
01:43:51.840 --> 01:43:52.040
we'll
01:43:52.040 --> 01:43:52.200
be
01:43:52.200 --> 01:43:52.280
getting
01:43:53.460 --> 01:43:54.180
category
01:43:54.180 --> 01:43:54.760
response
01:43:54.760 --> 01:43:55.940
so
01:43:55.940 --> 01:43:56.240
the
01:43:56.240 --> 01:43:56.440
category
01:43:56.440 --> 01:43:56.920
response
01:43:56.920 --> 01:43:57.580
would be
01:43:57.580 --> 01:43:58.120
something
01:44:02.760 --> 01:44:03.100
so
01:44:03.100 --> 01:44:03.300
this
01:44:03.300 --> 01:44:03.460
is
01:44:03.460 --> 01:44:03.620
the
01:44:03.620 --> 01:44:03.840
unique
01:44:03.840 --> 01:44:04.380
identifier
01:44:04.380 --> 01:44:05.080
what
01:44:05.080 --> 01:44:05.340
is
01:44:05.340 --> 01:44:05.600
the
01:44:05.600 --> 01:44:05.800
name
01:44:05.800 --> 01:44:06.040
of
01:44:06.040 --> 01:44:06.240
this
01:44:06.240 --> 01:44:06.620
category
01:44:06.620 --> 01:44:06.820
and
01:44:06.820 --> 01:44:06.960
what
01:44:06.960 --> 01:44:07.140
is
01:44:07.140 --> 01:44:07.300
the
01:44:07.300 --> 01:44:07.600
description
01:44:07.600 --> 01:44:07.820
of
01:44:07.820 --> 01:44:07.980
this
01:44:07.980 --> 01:44:08.200
category
01:44:08.200 --> 01:44:08.380
so
01:44:08.380 --> 01:44:08.540
this
01:44:08.540 --> 01:44:08.700
is
01:44:08.700 --> 01:44:08.840
the
01:44:08.840 --> 01:44:09.300
response
01:44:09.300 --> 01:44:10.200
but
01:44:10.200 --> 01:44:10.480
if
01:44:10.480 --> 01:44:10.600
you
01:44:10.600 --> 01:44:10.720
can
01:44:10.720 --> 01:44:10.960
see
01:44:10.960 --> 01:44:11.160
over
01:44:11.160 --> 01:44:11.420
here
01:44:11.420 --> 01:44:11.780
this
01:44:11.780 --> 01:44:12.180
response
01:44:12.180 --> 01:44:12.280
is
01:44:12.960 --> 01:44:13.480
described
01:44:13.480 --> 01:44:13.660
in
01:44:13.660 --> 01:44:13.960
terms
01:44:13.960 --> 01:44:14.320
of
01:44:14.320 --> 01:44:14.520
YAML
01:44:15.120 --> 01:44:15.640
but
01:44:15.640 --> 01:44:16.180
typically
01:44:16.180 --> 01:44:16.640
this
01:44:16.640 --> 01:44:16.820
is
01:44:16.820 --> 01:44:17.020
not
01:44:17.020 --> 01:44:17.180
the
01:44:17.180 --> 01:44:17.240
way
01:44:18.740 --> 01:44:19.260
each
01:44:19.260 --> 01:44:19.460
and
01:44:19.460 --> 01:44:19.580
every
01:44:19.580 --> 01:44:19.980
response
01:44:19.980 --> 01:44:20.160
will
01:44:20.160 --> 01:44:20.280
be
01:44:20.280 --> 01:44:20.460
on
01:44:20.460 --> 01:44:20.640
JSON
01:44:20.640 --> 01:44:21.000
format
01:44:21.000 --> 01:44:21.500
only
01:44:21.500 --> 01:44:21.920
at
01:44:22.480 --> 01:44:23.000
least
01:44:23.560 --> 01:44:24.040
open
01:44:24.040 --> 01:44:24.260
API
01:44:24.260 --> 01:44:24.800
specifications
01:44:24.800 --> 01:44:25.060
are
01:44:25.060 --> 01:44:25.440
concerned
01:44:25.440 --> 01:44:26.140
but
01:44:26.140 --> 01:44:26.640
right now
01:44:26.640 --> 01:44:27.340
for our
01:44:27.340 --> 01:44:27.640
Mulesoft
01:44:27.640 --> 01:44:28.480
implementations
01:44:28.480 --> 01:44:29.080
we are
01:44:29.080 --> 01:44:29.600
forward
01:44:29.600 --> 01:44:30.040
with the
01:44:30.040 --> 01:44:30.200
YAML
01:44:30.200 --> 01:44:30.580
based
01:44:30.580 --> 01:44:30.960
approaches
01:44:30.960 --> 01:44:31.560
like
01:44:31.560 --> 01:44:31.880
all
01:44:31.880 --> 01:44:33.000
the
01:44:33.000 --> 01:44:33.400
retail
01:44:33.960 --> 01:44:34.600
I mean
01:44:34.600 --> 01:44:35.440
the
01:44:35.440 --> 01:44:35.580
root
01:44:35.580 --> 01:44:36.180
implementations
01:44:36.180 --> 01:44:36.500
we have
01:44:36.500 --> 01:44:36.520
this
01:44:37.140 --> 01:44:37.620
but
01:44:37.620 --> 01:44:38.280
if you
01:44:38.280 --> 01:44:38.500
see
01:44:38.500 --> 01:44:38.780
here
01:44:38.780 --> 01:44:39.180
body
01:44:39.180 --> 01:44:39.700
type
01:44:39.700 --> 01:44:40.360
it is
01:44:40.360 --> 01:44:40.840
application
01:44:40.840 --> 01:44:41.240
.JSON
01:44:42.280 --> 01:44:42.680
I've
01:44:42.680 --> 01:44:42.880
told
01:44:42.880 --> 01:44:43.180
right
01:44:43.180 --> 01:44:43.600
all
01:44:43.600 --> 01:44:43.640
the
01:44:45.000 --> 01:44:45.260
kind
01:44:45.260 --> 01:44:45.560
of
01:44:45.560 --> 01:44:46.240
implementations
01:44:46.240 --> 01:44:46.540
you
01:44:46.540 --> 01:44:46.920
have
01:44:46.920 --> 01:44:47.540
it will
01:44:47.540 --> 01:44:47.700
be
01:44:47.700 --> 01:44:47.900
on
01:44:47.900 --> 01:44:48.140
JSON
01:44:48.140 --> 01:44:48.640
itself
01:44:48.640 --> 01:44:49.000
not
01:44:49.000 --> 01:44:49.340
the
01:44:49.340 --> 01:44:49.920
YAML
01:44:49.920 --> 01:44:50.460
but
01:44:50.460 --> 01:44:50.920
we'll
01:44:50.920 --> 01:44:51.140
be
01:44:51.140 --> 01:44:51.480
defining
01:44:51.480 --> 01:44:52.260
everything
01:44:52.260 --> 01:44:53.060
in
01:44:53.060 --> 01:44:53.360
JSON
01:44:53.360 --> 01:44:53.960
format
01:44:53.960 --> 01:44:54.740
sorry
01:44:54.740 --> 01:44:55.120
in
01:44:55.120 --> 01:44:55.360
YAML
01:44:55.360 --> 01:44:55.800
format
01:44:55.800 --> 01:44:56.460
so that
01:44:56.460 --> 01:44:56.920
we can
01:44:56.920 --> 01:44:57.440
define
01:44:57.440 --> 01:44:57.800
the
01:44:57.800 --> 01:44:58.120
responses
01:44:58.120 --> 01:44:58.560
that are
01:44:58.560 --> 01:44:58.840
already
01:44:58.840 --> 01:44:59.580
that will
01:44:59.580 --> 01:44:59.640
be
01:45:00.640 --> 01:45:02.740
you know
01:45:02.740 --> 01:45:03.040
served
01:45:03.040 --> 01:45:03.480
by
01:45:03.480 --> 01:45:03.900
the
01:45:03.900 --> 01:45:04.540
API request
01:45:04.540 --> 01:45:05.220
so you
01:45:05.220 --> 01:45:05.540
got the
01:45:05.540 --> 01:45:05.820
point right
01:45:05.820 --> 01:45:06.220
so the
01:45:06.220 --> 01:45:06.520
response
01:45:06.520 --> 01:45:07.140
will be
01:45:07.140 --> 01:45:07.480
inside
01:45:08.120 --> 01:45:08.580
I mean
01:45:08.580 --> 01:45:08.780
the
01:45:08.780 --> 01:45:08.960
response
01:45:08.960 --> 01:45:09.300
will be
01:45:09.300 --> 01:45:09.880
of
01:45:09.880 --> 01:45:10.280
JSON
01:45:10.280 --> 01:45:10.780
format
01:45:10.780 --> 01:45:11.640
but the
01:45:11.640 --> 01:45:12.160
specifications
01:45:12.160 --> 01:45:12.760
but
01:45:12.760 --> 01:45:13.120
what
01:45:13.120 --> 01:45:13.420
we
01:45:13.420 --> 01:45:13.900
provide
01:45:13.900 --> 01:45:14.500
to
01:45:14.500 --> 01:45:14.660
serve
01:45:14.660 --> 01:45:14.880
that
01:45:14.880 --> 01:45:15.280
responses
01:45:15.280 --> 01:45:15.640
will be
01:45:15.640 --> 01:45:15.760
on
01:45:15.760 --> 01:45:15.960
YAML
01:45:15.960 --> 01:45:16.360
format
01:45:16.360 --> 01:45:16.440
yeah
01:45:17.580 --> 01:45:18.240
so
01:45:18.240 --> 01:45:18.860
that's
01:45:18.860 --> 01:45:19.060
the
01:45:19.060 --> 01:45:19.740
way
01:45:19.740 --> 01:45:20.340
works
01:45:20.340 --> 01:45:20.920
then
01:45:20.920 --> 01:45:21.520
yeah
01:45:22.620 --> 01:45:23.280
so
01:45:23.280 --> 01:45:23.900
we'll
01:45:23.900 --> 01:45:24.060
be
01:45:24.060 --> 01:45:24.260
defining
01:45:24.260 --> 01:45:24.480
the
01:45:24.480 --> 01:45:25.020
response
01:45:25.020 --> 01:45:25.920
and
01:45:25.920 --> 01:45:26.220
we'll
01:45:26.220 --> 01:45:26.620
be providing
01:45:26.620 --> 01:45:26.680
the
01:45:27.360 --> 01:45:27.800
type
01:45:27.800 --> 01:45:28.000
of
01:45:28.000 --> 01:45:28.160
the
01:45:28.160 --> 01:45:28.700
response
01:45:28.840 --> 01:45:29.960
so basically
01:45:29.960 --> 01:45:31.020
there is
01:45:31.020 --> 01:45:31.480
a hard
01:45:31.480 --> 01:45:31.960
rule
01:45:32.820 --> 01:45:33.460
that
01:45:33.460 --> 01:45:34.040
this
01:45:34.040 --> 01:45:34.220
type
01:45:34.220 --> 01:45:35.640
should be
01:45:35.640 --> 01:45:36.020
already
01:45:36.020 --> 01:45:36.420
defined
01:45:36.420 --> 01:45:36.660
type
01:45:36.660 --> 01:45:37.080
in this
01:45:37.080 --> 01:45:37.480
file
01:45:37.480 --> 01:45:38.400
let's say
01:45:38.400 --> 01:45:38.860
we have
01:45:38.860 --> 01:45:39.160
category
01:45:39.160 --> 01:45:39.480
collection
01:45:39.480 --> 01:45:39.880
response
01:45:39.880 --> 01:45:40.740
right
01:45:40.740 --> 01:45:41.160
if you
01:45:41.160 --> 01:45:41.460
go
01:45:41.460 --> 01:45:41.920
here
01:45:42.600 --> 01:45:43.180
we have
01:45:43.180 --> 01:45:43.760
defined
01:45:44.520 --> 01:45:45.160
how
01:45:45.160 --> 01:45:45.780
a category
01:45:45.780 --> 01:45:46.120
collection
01:45:46.120 --> 01:45:46.440
response
01:45:46.440 --> 01:45:47.160
should be
01:45:47.160 --> 01:45:47.440
with
01:45:47.440 --> 01:45:47.840
the help
01:45:48.960 --> 01:45:49.600
properties
01:45:49.600 --> 01:45:49.920
called
01:45:49.920 --> 01:45:50.340
categories
01:45:50.340 --> 01:45:50.760
itself
01:45:50.760 --> 01:45:51.420
if you
01:45:51.420 --> 01:45:51.580
go
01:45:51.580 --> 01:45:51.840
here
01:45:51.840 --> 01:45:52.200
in the
01:45:52.200 --> 01:45:52.920
taxonomy
01:45:53.900 --> 01:45:54.680
we have
01:45:54.680 --> 01:45:55.120
this
01:45:55.120 --> 01:45:55.540
taxonomy
01:45:55.540 --> 01:45:55.880
defined
01:45:55.880 --> 01:45:56.260
already
01:45:56.260 --> 01:45:56.580
defined
01:45:56.580 --> 01:45:56.940
over here
01:45:56.940 --> 01:45:57.100
so
01:45:57.100 --> 01:45:57.300
we'll
01:45:57.300 --> 01:45:57.480
just
01:45:57.480 --> 01:45:57.840
reusing
01:45:57.840 --> 01:45:58.280
that
01:45:58.280 --> 01:45:58.780
so
01:45:58.780 --> 01:45:59.520
this is like
01:45:59.520 --> 01:46:00.300
a layer by layer
01:46:00.300 --> 01:46:00.860
implementation
01:46:00.860 --> 01:46:01.880
first you will be
01:46:01.880 --> 01:46:02.180
defining
01:46:02.180 --> 01:46:02.880
this layer
01:46:02.880 --> 01:46:03.660
and just
01:46:04.740 --> 01:46:05.540
pushing that
01:46:05.540 --> 01:46:06.060
into different
01:46:06.060 --> 01:46:06.420
file
01:46:06.420 --> 01:46:06.740
so that
01:46:06.740 --> 01:46:07.020
you can
01:46:07.020 --> 01:46:07.260
reuse
01:46:07.260 --> 01:46:07.880
everywhere
01:46:07.880 --> 01:46:08.300
inside
01:46:08.300 --> 01:46:08.960
another project
01:46:08.960 --> 01:46:09.480
as well
01:46:09.480 --> 01:46:10.400
and once
01:46:10.400 --> 01:46:10.880
you
01:46:10.880 --> 01:46:11.140
define
01:46:11.140 --> 01:46:11.420
that
01:46:11.420 --> 01:46:12.120
somewhere else
01:46:12.120 --> 01:46:12.480
you're
01:46:12.480 --> 01:46:12.720
just
01:46:12.720 --> 01:46:13.000
importing
01:46:13.000 --> 01:46:13.400
that
01:46:13.400 --> 01:46:13.980
into your
01:46:13.980 --> 01:46:14.200
current
01:46:14.200 --> 01:46:14.580
project
01:46:14.580 --> 01:46:14.980
I mean
01:46:14.980 --> 01:46:15.460
into your
01:46:15.460 --> 01:46:15.680
current
01:46:15.680 --> 01:46:16.220
implementation
01:46:16.220 --> 01:46:16.600
API
01:46:16.600 --> 01:46:17.460
and you'll
01:46:17.460 --> 01:46:17.620
be
01:46:17.620 --> 01:46:17.880
implementing
01:46:17.880 --> 01:46:18.220
that
01:46:18.220 --> 01:46:18.500
how
01:46:18.500 --> 01:46:18.780
you want
01:46:18.780 --> 01:46:19.100
to implement
01:46:19.100 --> 01:46:19.260
that
01:46:20.560 --> 01:46:21.120
is
01:46:21.120 --> 01:46:21.620
just
01:46:21.620 --> 01:46:21.880
bringing
01:46:21.880 --> 01:46:22.180
that
01:46:22.180 --> 01:46:22.700
and
01:46:22.700 --> 01:46:22.980
using
01:46:22.980 --> 01:46:23.260
dot
01:46:23.260 --> 01:46:23.560
syntax
01:46:23.560 --> 01:46:23.960
that I've
01:46:23.960 --> 01:46:24.220
already
01:46:24.220 --> 01:46:24.500
told
01:46:24.500 --> 01:46:25.240
so by
01:46:25.240 --> 01:46:25.760
using this
01:46:25.760 --> 01:46:26.360
dot syntax
01:46:26.360 --> 01:46:26.840
we'll
01:46:26.840 --> 01:46:27.180
just
01:46:27.180 --> 01:46:27.620
refer
01:46:28.200 --> 01:46:28.760
already
01:46:28.780 --> 01:46:29.360
imported
01:46:29.360 --> 01:46:30.060
implementation
01:46:30.060 --> 01:46:30.620
so
01:46:31.240 --> 01:46:31.780
inside
01:46:31.780 --> 01:46:31.980
this
01:46:32.760 --> 01:46:33.620
I mean
01:46:33.620 --> 01:46:34.140
you are
01:46:34.140 --> 01:46:34.700
just
01:46:36.000 --> 01:46:36.660
fetching
01:46:36.660 --> 01:46:36.900
the
01:46:36.900 --> 01:46:37.280
details
01:46:37.280 --> 01:46:37.620
called
01:46:37.620 --> 01:46:38.060
category
01:46:38.060 --> 01:46:38.840
but what
01:46:38.840 --> 01:46:39.140
exactly
01:46:39.140 --> 01:46:39.480
is this
01:46:39.480 --> 01:46:39.820
category
01:46:39.820 --> 01:46:40.180
you don't
01:46:40.180 --> 01:46:40.560
have any
01:46:40.560 --> 01:46:40.740
idea
01:46:40.740 --> 01:46:41.080
right now
01:46:41.080 --> 01:46:41.540
right
01:46:41.540 --> 01:46:42.320
so if you
01:46:42.320 --> 01:46:42.460
wanted
01:46:42.460 --> 01:46:42.800
to
01:46:42.800 --> 01:46:43.160
understand
01:46:43.160 --> 01:46:43.420
what
01:46:43.420 --> 01:46:43.700
exactly
01:46:43.700 --> 01:46:43.860
is
01:46:43.860 --> 01:46:44.040
this
01:46:44.040 --> 01:46:44.360
category
01:46:44.360 --> 01:46:45.020
you have
01:46:45.020 --> 01:46:45.280
to go
01:46:45.280 --> 01:46:45.640
to this
01:46:45.640 --> 01:46:45.940
specific
01:46:45.940 --> 01:46:46.600
implementation
01:46:46.600 --> 01:46:47.260
inside
01:46:47.260 --> 01:46:47.520
the
01:46:47.520 --> 01:46:47.720
exchange
01:46:47.720 --> 01:46:48.060
modules
01:46:48.060 --> 01:46:49.080
and then
01:46:49.080 --> 01:46:49.260
just
01:46:49.780 --> 01:46:50.400
you know
01:46:50.400 --> 01:46:50.660
go
01:46:50.660 --> 01:46:51.340
that
01:46:51.340 --> 01:46:52.520
understand
01:46:53.540 --> 01:46:54.200
how
01:46:55.000 --> 01:46:55.660
this
01:46:55.660 --> 01:46:56.420
category
01:46:56.420 --> 01:46:56.700
is
01:46:56.700 --> 01:46:57.060
defined
01:46:57.060 --> 01:46:57.800
like
01:46:57.800 --> 01:46:58.220
what
01:46:58.220 --> 01:46:58.580
exactly
01:46:58.580 --> 01:46:59.200
rules
01:46:59.200 --> 01:46:59.500
for
01:46:59.500 --> 01:46:59.700
this
01:46:59.700 --> 01:47:00.080
category
01:47:00.960 --> 01:47:01.440
I
01:47:01.440 --> 01:47:02.340
think
01:47:02.940 --> 01:47:03.420
it
01:47:03.420 --> 01:47:03.740
consists
01:47:03.740 --> 01:47:03.860
of
01:47:04.500 --> 01:47:04.940
something
01:47:04.940 --> 01:47:05.220
like
01:47:05.220 --> 01:47:05.420
this
01:47:05.420 --> 01:47:05.680
that
01:47:05.680 --> 01:47:05.920
I
01:47:05.920 --> 01:47:06.160
that
01:47:06.160 --> 01:47:06.480
we've
01:47:06.480 --> 01:47:06.700
already
01:47:06.700 --> 01:47:07.280
discussed
01:47:07.280 --> 01:47:07.520
like
01:47:07.520 --> 01:47:07.820
I'll
01:47:07.820 --> 01:47:07.920
show
01:47:07.920 --> 01:47:08.160
you
01:47:08.160 --> 01:47:08.320
this
01:47:08.320 --> 01:47:08.480
rule
01:47:08.480 --> 01:47:08.720
all
01:47:08.720 --> 01:47:08.980
this
01:47:12.040 --> 01:47:12.520
yeah
01:47:12.520 --> 01:47:13.040
something
01:47:13.040 --> 01:47:13.280
like
01:47:13.280 --> 01:47:13.680
this
01:47:13.680 --> 01:47:14.140
so we
01:47:14.140 --> 01:47:14.260
for
01:47:14.260 --> 01:47:14.720
we have
01:47:14.720 --> 01:47:15.020
product
01:47:15.020 --> 01:47:15.620
and
01:47:15.620 --> 01:47:15.960
each and
01:47:15.960 --> 01:47:16.200
where
01:47:16.200 --> 01:47:16.660
each and
01:47:16.660 --> 01:47:16.860
every
01:47:16.860 --> 01:47:17.040
product
01:47:17.040 --> 01:47:17.460
has its
01:47:17.460 --> 01:47:17.620
own
01:47:17.620 --> 01:47:18.040
properties
01:47:18.040 --> 01:47:18.440
like
01:47:18.440 --> 01:47:18.860
identifier
01:47:18.860 --> 01:47:19.300
category
01:47:19.300 --> 01:47:19.600
area
01:47:19.600 --> 01:47:20.100
brand
01:47:20.100 --> 01:47:20.500
and all
01:47:20.500 --> 01:47:21.100
so for
01:47:21.100 --> 01:47:21.320
product
01:47:21.320 --> 01:47:21.700
also
01:47:21.700 --> 01:47:21.900
I mean
01:47:21.900 --> 01:47:22.160
for
01:47:22.160 --> 01:47:22.440
category
01:47:22.440 --> 01:47:22.880
also
01:47:22.880 --> 01:47:23.360
it has
01:47:23.360 --> 01:47:23.580
something
01:47:29.080 --> 01:47:30.100
in which
01:47:30.100 --> 01:47:30.640
year
01:47:30.640 --> 01:47:31.300
this category
01:47:31.300 --> 01:47:32.040
is introduced
01:47:32.040 --> 01:47:32.820
or
01:47:32.820 --> 01:47:33.280
what is
01:47:33.280 --> 01:47:33.620
the turnover
01:47:33.620 --> 01:47:34.040
of this
01:47:34.040 --> 01:47:34.280
category
01:47:34.280 --> 01:47:34.660
so
01:47:34.660 --> 01:47:35.160
those are
01:47:35.160 --> 01:47:35.580
the attributes
01:47:35.580 --> 01:47:36.380
that are
01:47:36.380 --> 01:47:36.580
present
01:47:36.580 --> 01:47:37.220
for that
01:47:37.220 --> 01:47:37.980
specific
01:47:37.980 --> 01:47:38.540
implementation
01:47:38.540 --> 01:47:39.380
okay
01:47:39.380 --> 01:47:39.820
so
01:47:39.820 --> 01:47:40.240
like
01:47:40.240 --> 01:47:40.920
right now
01:47:40.920 --> 01:47:41.440
we'll just
01:47:41.440 --> 01:47:41.660
import
01:47:41.660 --> 01:47:41.920
that
01:47:41.920 --> 01:47:42.340
and use
01:47:42.340 --> 01:47:42.560
this
01:47:42.560 --> 01:47:42.820
so that
01:47:43.360 --> 01:47:44.020
we can
01:47:44.020 --> 01:47:44.200
have
01:47:44.200 --> 01:47:44.340
the
01:47:44.340 --> 01:47:44.620
usability
01:47:44.620 --> 01:47:44.880
over
01:47:44.880 --> 01:47:45.400
there
01:47:45.400 --> 01:47:46.340
that is
01:47:46.340 --> 01:47:46.980
one thing
01:47:47.560 --> 01:47:48.120
and
01:47:48.120 --> 01:47:48.820
it comes
01:47:48.820 --> 01:47:49.140
to the
01:47:49.140 --> 01:47:49.600
response
01:47:50.380 --> 01:47:50.940
how
01:47:50.940 --> 01:47:51.740
a
01:47:51.740 --> 01:47:51.940
single
01:47:53.480 --> 01:47:54.400
API endpoint
01:47:54.400 --> 01:47:54.720
is
01:47:54.720 --> 01:47:55.100
defined
01:47:56.080 --> 01:47:56.640
okay
01:47:56.640 --> 01:47:57.340
so
01:47:57.340 --> 01:47:57.860
right now
01:47:57.860 --> 01:48:00.420
is one of the
01:48:00.420 --> 01:48:01.080
REST API that
01:48:01.080 --> 01:48:01.460
we have
01:48:01.460 --> 01:48:01.860
defined
01:48:01.860 --> 01:48:02.160
I mean
01:48:02.160 --> 01:48:02.520
discussed
01:48:02.520 --> 01:48:02.580
for
01:48:03.600 --> 01:48:04.000
ML
01:48:04.000 --> 01:48:04.760
implementation
01:48:06.060 --> 01:48:06.960
let me
01:48:06.960 --> 01:48:07.660
just
01:48:07.660 --> 01:48:08.040
take a
01:48:08.040 --> 01:48:08.260
break
01:48:08.260 --> 01:48:08.960
of
01:48:08.960 --> 01:48:09.320
let me
01:48:09.320 --> 01:48:09.640
just
01:48:09.640 --> 01:48:10.320
get some
01:48:10.320 --> 01:48:10.420
water
01:48:11.240 --> 01:48:11.840
we'll
01:48:11.840 --> 01:48:12.000
connect
01:48:12.000 --> 01:48:12.480
after 10
01:48:12.480 --> 01:48:12.640
minutes
01:48:13.360 --> 01:48:13.960
maybe
01:48:13.960 --> 01:48:14.640
yeah
01:48:14.640 --> 01:48:15.680
sure
01:48:33.900 --> 01:48:34.540
yeah
01:48:35.920 --> 01:48:37.200
you back
01:48:38.640 --> 01:48:39.280
yeah
01:48:39.280 --> 01:48:39.780
let's just
01:48:42.280 --> 01:48:42.920
so
01:48:44.300 --> 01:48:45.200
that would
01:48:45.200 --> 01:48:45.760
be
01:48:45.760 --> 01:48:46.520
one of
01:48:46.520 --> 01:48:46.740
the
01:48:46.740 --> 01:48:47.220
get requests
01:48:47.220 --> 01:48:47.700
that we
01:48:47.700 --> 01:48:47.860
have
01:48:47.860 --> 01:48:48.620
designed
01:48:48.620 --> 01:48:49.320
till now
01:48:49.320 --> 01:48:49.840
so
01:48:49.840 --> 01:48:50.480
let's say
01:48:50.480 --> 01:48:51.060
we have
01:48:51.780 --> 01:48:52.320
few more
01:48:52.320 --> 01:48:52.900
requests
01:48:52.900 --> 01:48:53.900
that are
01:48:53.900 --> 01:48:54.080
tightly
01:48:54.080 --> 01:48:54.400
coupled
01:48:54.400 --> 01:48:54.860
with this
01:48:54.860 --> 01:48:55.360
get request
01:48:55.360 --> 01:48:56.040
let's say
01:48:56.040 --> 01:48:56.240
for
01:48:56.240 --> 01:48:56.420
example
01:48:57.860 --> 01:48:58.400
for
01:48:58.980 --> 01:48:59.620
YouTube is
01:49:00.620 --> 01:49:01.140
best example
01:49:01.140 --> 01:49:01.380
let's say
01:49:04.620 --> 01:49:05.340
let's say
01:49:05.340 --> 01:49:05.900
you want to
01:49:05.900 --> 01:49:06.320
go for
01:49:06.320 --> 01:49:06.740
subscriptions
01:49:07.460 --> 01:49:08.520
if you see
01:49:08.520 --> 01:49:09.860
inside the
01:49:09.860 --> 01:49:10.100
feed
01:49:10.100 --> 01:49:10.720
you have
01:49:10.720 --> 01:49:11.020
different
01:49:11.860 --> 01:49:12.340
you have
01:49:12.340 --> 01:49:12.880
a different
01:49:12.880 --> 01:49:13.360
endpoint
01:49:13.360 --> 01:49:13.680
called
01:49:13.680 --> 01:49:14.340
subscriptions
01:49:14.340 --> 01:49:15.140
endpoint
01:49:15.140 --> 01:49:15.880
let's say
01:49:15.880 --> 01:49:16.180
you don't
01:49:16.180 --> 01:49:16.480
want to
01:49:16.480 --> 01:49:16.800
go for
01:49:16.800 --> 01:49:17.280
subscriptions
01:49:17.780 --> 01:49:18.300
let's say
01:49:18.300 --> 01:49:18.580
you have
01:49:19.700 --> 01:49:20.300
adjust
01:49:21.140 --> 01:49:21.540
with the
01:49:22.660 --> 01:49:23.260
feed
01:49:23.260 --> 01:49:24.120
it will
01:49:24.120 --> 01:49:24.640
provide
01:49:24.640 --> 01:49:25.080
a list
01:49:25.080 --> 01:49:25.340
of
01:49:25.340 --> 01:49:25.820
recommendations
01:49:25.820 --> 01:49:26.340
for you
01:49:26.340 --> 01:49:26.920
and you
01:49:26.920 --> 01:49:27.080
don't
01:49:27.080 --> 01:49:27.480
want to
01:49:27.480 --> 01:49:27.680
have
01:49:27.680 --> 01:49:28.460
random recommendations
01:49:28.460 --> 01:49:29.160
from random
01:49:29.160 --> 01:49:29.560
YouTube
01:49:29.560 --> 01:49:30.200
so you
01:49:30.200 --> 01:49:30.520
want to
01:49:30.520 --> 01:49:31.280
get only
01:49:31.280 --> 01:49:31.820
recommendations
01:49:31.820 --> 01:49:32.160
from
01:49:32.160 --> 01:49:32.700
your
01:49:32.700 --> 01:49:32.920
own
01:49:32.920 --> 01:49:33.360
subscriptions
01:49:33.360 --> 01:49:34.080
so you
01:49:34.080 --> 01:49:34.320
just
01:49:34.320 --> 01:49:34.560
hit this
01:49:35.180 --> 01:49:36.200
subscriptions
01:49:36.200 --> 01:49:36.920
endpoint
01:49:36.920 --> 01:49:37.440
so
01:49:39.600 --> 01:49:40.140
I want you
01:49:40.140 --> 01:49:40.240
to
01:49:40.240 --> 01:49:40.860
understand
01:49:40.860 --> 01:49:41.500
how
01:49:41.500 --> 01:49:41.840
we are
01:49:41.840 --> 01:49:42.340
passing
01:49:42.340 --> 01:49:43.160
different
01:49:43.160 --> 01:49:43.820
parameters
01:49:43.820 --> 01:49:44.340
or
01:49:44.340 --> 01:49:44.640
different
01:49:47.000 --> 01:49:47.880
route
01:49:47.880 --> 01:49:48.300
path
01:49:48.300 --> 01:49:48.920
that we
01:49:48.920 --> 01:49:49.140
are
01:49:49.140 --> 01:49:49.520
providing
01:49:49.520 --> 01:49:49.940
for
01:49:49.940 --> 01:49:50.620
a route path
01:49:50.620 --> 01:49:51.380
basically
01:49:51.380 --> 01:49:52.700
that's how
01:49:52.700 --> 01:49:53.500
we'll be
01:49:53.500 --> 01:49:53.780
designing
01:49:53.780 --> 01:49:54.480
a new
01:49:55.380 --> 01:49:55.820
path
01:49:55.820 --> 01:49:56.480
inside this
01:49:57.680 --> 01:49:58.620
categories endpoint
01:49:59.440 --> 01:50:00.340
that's way
01:50:00.340 --> 01:50:01.200
we'll be
01:50:01.200 --> 01:50:01.660
giving a
01:50:01.660 --> 01:50:01.840
slash
01:50:02.960 --> 01:50:03.680
inside
01:50:03.680 --> 01:50:04.840
categories endpoint
01:50:04.840 --> 01:50:05.360
if you see
01:50:05.360 --> 01:50:06.160
over here
01:50:07.360 --> 01:50:08.540
there is a
01:50:08.540 --> 01:50:08.900
new line
01:50:08.900 --> 01:50:09.520
between
01:50:09.520 --> 01:50:09.800
in the
01:50:09.800 --> 01:50:10.860
61st line
01:50:10.860 --> 01:50:11.680
and
01:50:11.680 --> 01:50:12.440
44th line
01:50:12.440 --> 01:50:13.140
if you compare
01:50:13.140 --> 01:50:13.660
the new lines
01:50:13.660 --> 01:50:13.920
here
01:50:14.580 --> 01:50:15.280
if you see
01:50:16.280 --> 01:50:16.720
it is
01:50:17.440 --> 01:50:18.080
the
01:50:18.080 --> 01:50:18.820
61st line
01:50:18.820 --> 01:50:19.240
is the
01:50:19.240 --> 01:50:19.800
child of
01:50:19.800 --> 01:50:20.960
44th line
01:50:20.960 --> 01:50:21.880
so it is
01:50:21.880 --> 01:50:22.360
one of
01:50:22.360 --> 01:50:22.660
the
01:50:22.660 --> 01:50:23.320
object
01:50:23.320 --> 01:50:24.120
of
01:50:24.120 --> 01:50:24.880
44th line
01:50:25.600 --> 01:50:26.120
we
01:50:27.680 --> 01:50:28.360
object
01:50:28.360 --> 01:50:29.220
specifications
01:50:30.640 --> 01:50:30.640
so
01:50:32.300 --> 01:50:33.280
if you want
01:50:33.280 --> 01:50:33.440
to
01:50:33.440 --> 01:50:33.840
understand
01:50:33.840 --> 01:50:34.300
in the
01:50:34.300 --> 01:50:34.360
it
01:50:34.360 --> 01:50:34.620
in a
01:50:34.620 --> 01:50:34.860
layman
01:50:34.860 --> 01:50:35.120
language
01:50:37.940 --> 01:50:39.300
let's say
01:50:39.300 --> 01:50:40.320
categories
01:50:40.320 --> 01:50:41.180
provides us
01:50:41.180 --> 01:50:41.480
a list
01:50:41.480 --> 01:50:41.660
of
01:50:41.660 --> 01:50:42.080
categories
01:50:42.080 --> 01:50:43.020
but
01:50:43.020 --> 01:50:43.700
if you
01:50:43.700 --> 01:50:44.020
want to
01:50:44.020 --> 01:50:44.180
fetch
01:50:44.180 --> 01:50:44.800
a specific
01:50:44.800 --> 01:50:45.220
category
01:50:45.220 --> 01:50:46.120
then you'll
01:50:46.120 --> 01:50:46.260
be
01:50:46.260 --> 01:50:46.580
passing
01:50:46.580 --> 01:50:47.140
category
01:50:47.140 --> 01:50:47.580
id
01:50:49.120 --> 01:50:50.000
so this
01:50:50.000 --> 01:50:50.280
is the
01:50:50.280 --> 01:50:50.480
random
01:50:50.480 --> 01:50:50.760
id that
01:50:50.760 --> 01:50:51.240
we provide
01:50:51.240 --> 01:50:52.360
so this
01:50:52.360 --> 01:50:52.700
random
01:50:52.700 --> 01:50:53.360
id is
01:50:53.360 --> 01:50:53.720
captured
01:50:53.720 --> 01:50:54.180
by the
01:50:54.180 --> 01:50:54.320
variable
01:50:54.840 --> 01:50:55.500
called
01:50:55.500 --> 01:50:56.640
category
01:50:56.640 --> 01:50:56.980
id
01:51:03.280 --> 01:51:04.440
that is
01:51:04.440 --> 01:51:05.280
I mean that
01:51:05.280 --> 01:51:05.760
since this
01:51:05.760 --> 01:51:06.080
is
01:51:06.080 --> 01:51:06.460
variable
01:51:06.460 --> 01:51:07.420
it will
01:51:07.420 --> 01:51:07.780
change
01:51:07.780 --> 01:51:08.760
every time
01:51:08.760 --> 01:51:09.660
it's not a
01:51:09.660 --> 01:51:10.340
static one
01:51:10.340 --> 01:51:11.380
so
01:51:11.380 --> 01:51:12.000
that's
01:51:12.000 --> 01:51:12.600
the reason
01:51:13.120 --> 01:51:13.520
we have
01:51:14.380 --> 01:51:14.860
provided
01:51:14.860 --> 01:51:15.780
static
01:51:15.780 --> 01:51:16.200
paths
01:51:16.200 --> 01:51:16.580
or
01:51:16.580 --> 01:51:16.840
static
01:51:16.840 --> 01:51:17.240
routes
01:51:17.240 --> 01:51:18.400
as
01:51:18.400 --> 01:51:18.760
a normal
01:51:18.760 --> 01:51:19.180
text
01:51:19.180 --> 01:51:19.600
but
01:51:20.120 --> 01:51:21.100
variable
01:51:21.100 --> 01:51:21.400
ones
01:51:21.400 --> 01:51:21.680
we should
01:51:22.400 --> 01:51:22.740
always
01:51:22.740 --> 01:51:23.460
change
01:51:23.460 --> 01:51:24.220
them
01:51:24.220 --> 01:51:25.020
as a
01:51:25.020 --> 01:51:25.340
category
01:51:25.340 --> 01:51:25.700
id
01:51:26.400 --> 01:51:26.780
so
01:51:26.780 --> 01:51:27.400
if you see
01:51:27.400 --> 01:51:28.000
over here
01:51:28.000 --> 01:51:28.740
it will
01:51:28.740 --> 01:51:29.720
have this
01:51:29.720 --> 01:51:30.460
category as
01:51:30.460 --> 01:51:31.000
I mean the
01:51:31.000 --> 01:51:31.160
category
01:51:31.160 --> 01:51:31.680
id as
01:51:31.680 --> 01:51:32.120
parameters
01:51:32.880 --> 01:51:33.520
so
01:51:33.520 --> 01:51:34.200
what exactly
01:51:34.200 --> 01:51:34.500
the
01:51:34.500 --> 01:51:34.880
parameters
01:51:35.660 --> 01:51:36.040
this
01:51:36.040 --> 01:51:36.560
ui
01:51:36.560 --> 01:51:36.860
this
01:51:36.860 --> 01:51:37.120
uri
01:51:37.120 --> 01:51:37.560
parameters
01:51:37.560 --> 01:51:38.040
is a
01:51:38.040 --> 01:51:39.320
built-in
01:51:39.320 --> 01:51:39.780
ram and
01:51:40.500 --> 01:51:41.140
languages
01:51:42.660 --> 01:51:43.300
methodology
01:51:43.300 --> 01:51:43.800
actually
01:51:43.800 --> 01:51:44.580
it will
01:51:44.580 --> 01:51:45.360
describe
01:51:46.080 --> 01:51:47.040
what exactly
01:51:47.040 --> 01:51:47.280
the
01:51:47.280 --> 01:51:47.520
parameters
01:51:47.520 --> 01:51:47.880
that we
01:51:47.880 --> 01:51:48.100
will be
01:51:48.100 --> 01:51:48.320
passing
01:51:48.320 --> 01:51:49.260
so here
01:51:49.260 --> 01:51:49.760
the
01:51:49.760 --> 01:51:50.020
parameter
01:51:50.020 --> 01:51:50.300
is
01:51:50.300 --> 01:51:50.660
category
01:51:50.660 --> 01:51:50.940
id
01:51:50.940 --> 01:51:51.900
this is
01:51:51.900 --> 01:51:52.080
like
01:51:52.080 --> 01:51:52.580
much more
01:51:52.580 --> 01:51:53.020
similar to
01:51:54.000 --> 01:51:54.640
something
01:51:56.820 --> 01:51:58.500
the question mark
01:51:58.500 --> 01:51:59.180
and the natural
01:51:59.180 --> 01:51:59.800
category id
01:52:01.560 --> 01:52:02.780
so that's how
01:52:02.780 --> 01:52:03.120
this
01:52:03.120 --> 01:52:03.380
url
01:52:03.380 --> 01:52:03.680
works
01:52:04.540 --> 01:52:04.800
and
01:52:04.800 --> 01:52:05.400
here
01:52:05.400 --> 01:52:05.760
we have
01:52:05.760 --> 01:52:06.100
provided
01:52:06.100 --> 01:52:06.660
the
01:52:06.660 --> 01:52:07.320
configuration
01:52:07.320 --> 01:52:07.900
for
01:52:07.900 --> 01:52:08.300
what this
01:52:09.020 --> 01:52:09.700
specific
01:52:09.700 --> 01:52:10.180
end point
01:52:10.180 --> 01:52:10.960
should do
01:52:10.960 --> 01:52:11.600
it will
01:52:11.600 --> 01:52:11.740
also
01:52:11.740 --> 01:52:12.220
just
01:52:12.220 --> 01:52:12.740
get
01:52:12.740 --> 01:52:13.060
the
01:52:13.060 --> 01:52:13.580
category
01:52:13.580 --> 01:52:14.120
of a
01:52:14.120 --> 01:52:14.360
specific
01:52:14.360 --> 01:52:14.680
category
01:52:14.680 --> 01:52:14.820
id
01:52:14.820 --> 01:52:15.160
which is
01:52:15.160 --> 01:52:15.520
already
01:52:15.520 --> 01:52:16.060
passed
01:52:16.060 --> 01:52:16.940
as a
01:52:17.560 --> 01:52:17.760
uri
01:52:17.760 --> 01:52:18.280
parameter
01:52:19.180 --> 01:52:19.620
so
01:52:19.620 --> 01:52:20.200
and also
01:52:20.200 --> 01:52:20.400
here
01:52:20.400 --> 01:52:20.720
we have
01:52:20.720 --> 01:52:21.140
responses
01:52:21.140 --> 01:52:21.680
since this
01:52:21.680 --> 01:52:21.860
is
01:52:21.860 --> 01:52:22.520
get request
01:52:22.520 --> 01:52:23.540
will mostly
01:52:23.540 --> 01:52:24.120
design
01:52:24.120 --> 01:52:24.220
this
01:52:25.380 --> 01:52:26.060
specific
01:52:26.060 --> 01:52:26.760
get request
01:52:26.760 --> 01:52:27.220
to provide
01:52:27.220 --> 01:52:27.820
the 200
01:52:27.820 --> 01:52:28.380
responses
01:52:28.380 --> 01:52:28.940
similar to
01:52:28.940 --> 01:52:29.220
do
01:52:29.220 --> 01:52:29.820
similar to
01:52:29.820 --> 01:52:29.960
that
01:52:30.740 --> 01:52:31.240
itself
01:52:32.660 --> 01:52:33.260
and
01:52:33.800 --> 01:52:34.360
if you
01:52:34.360 --> 01:52:34.500
see
01:52:34.500 --> 01:52:34.680
you
01:52:34.680 --> 01:52:34.820
over
01:52:34.820 --> 01:52:35.400
here
01:52:36.040 --> 01:52:36.640
this
01:52:36.640 --> 01:52:37.220
there is
01:52:37.220 --> 01:52:37.320
another
01:52:39.120 --> 01:52:39.720
route
01:52:39.720 --> 01:52:40.160
path
01:52:40.160 --> 01:52:41.000
this route
01:52:41.000 --> 01:52:41.180
path
01:52:41.180 --> 01:52:41.480
is
01:52:41.480 --> 01:52:41.880
mostly
01:52:41.880 --> 01:52:42.440
the
01:52:42.440 --> 01:52:42.520
product
01:52:43.200 --> 01:52:43.800
path
01:52:43.800 --> 01:52:44.840
basically
01:52:45.480 --> 01:52:46.260
you have
01:52:46.260 --> 01:52:46.640
to understand
01:52:46.640 --> 01:52:47.240
like this
01:52:47.240 --> 01:52:47.820
it's
01:52:47.820 --> 01:52:47.960
like
01:52:47.960 --> 01:52:48.440
kind of
01:52:48.440 --> 01:52:48.560
tree
01:52:48.560 --> 01:52:48.920
basically
01:52:50.100 --> 01:52:50.900
we have
01:52:50.900 --> 01:52:51.320
categories
01:52:51.320 --> 01:52:51.720
as a
01:52:51.720 --> 01:52:51.920
parent
01:52:51.920 --> 01:52:52.520
path
01:52:53.180 --> 01:52:53.780
inside
01:52:53.780 --> 01:52:54.080
this
01:52:54.080 --> 01:52:54.380
categories
01:52:54.380 --> 01:52:54.820
path
01:52:54.820 --> 01:52:55.240
we have
01:52:55.240 --> 01:52:55.500
lot
01:52:55.500 --> 01:52:55.800
of
01:52:55.800 --> 01:52:56.200
categories
01:52:56.900 --> 01:52:57.460
and
01:52:57.460 --> 01:52:57.820
for each
01:52:57.820 --> 01:52:58.160
and every
01:52:58.160 --> 01:52:58.560
category
01:52:58.560 --> 01:52:59.160
you have
01:52:59.160 --> 01:52:59.700
lots of
01:52:59.700 --> 01:53:00.220
products
01:53:01.380 --> 01:53:01.940
see
01:53:02.440 --> 01:53:03.120
for each
01:53:03.120 --> 01:53:03.420
and every
01:53:03.420 --> 01:53:03.800
category
01:53:03.800 --> 01:53:03.960
id
01:53:03.960 --> 01:53:04.340
you have
01:53:04.340 --> 01:53:04.680
different
01:53:04.680 --> 01:53:05.180
products
01:53:05.180 --> 01:53:05.880
so it's
01:53:05.880 --> 01:53:06.380
a kind of
01:53:06.380 --> 01:53:07.140
catalogs
01:53:07.140 --> 01:53:07.680
you can say
01:53:07.680 --> 01:53:08.400
so
01:53:08.400 --> 01:53:09.060
this can be
01:53:09.060 --> 01:53:09.400
translated
01:53:09.400 --> 01:53:09.740
like
01:53:09.740 --> 01:53:10.340
this
01:53:11.540 --> 01:53:12.320
you have
01:53:12.320 --> 01:53:12.780
categories
01:53:12.780 --> 01:53:14.080
and then
01:53:14.080 --> 01:53:14.520
you'll be
01:53:14.520 --> 01:53:14.840
passing
01:53:14.840 --> 01:53:15.460
a category
01:53:15.460 --> 01:53:15.780
id
01:53:15.780 --> 01:53:16.740
for this
01:53:16.740 --> 01:53:17.180
you wanted
01:53:17.180 --> 01:53:17.440
to
01:53:17.440 --> 01:53:17.740
fetch
01:53:17.740 --> 01:53:18.260
what are
01:53:18.260 --> 01:53:18.580
the products
01:53:18.580 --> 01:53:18.920
for this
01:53:18.920 --> 01:53:19.200
category
01:53:19.200 --> 01:53:19.520
id
01:53:19.520 --> 01:53:20.340
then you'll
01:53:20.340 --> 01:53:20.740
be
01:53:20.740 --> 01:53:20.940
hitting
01:53:20.940 --> 01:53:21.280
this
01:53:27.940 --> 01:53:28.660
so
01:53:29.420 --> 01:53:29.480
this
01:53:30.140 --> 01:53:30.920
let's say
01:53:30.920 --> 01:53:31.060
when
01:53:31.060 --> 01:53:31.320
user
01:53:31.320 --> 01:53:31.540
hits
01:53:31.540 --> 01:53:31.640
this
01:53:33.640 --> 01:53:34.360
request
01:53:34.360 --> 01:53:34.740
inside
01:53:34.740 --> 01:53:34.840
his
01:53:35.740 --> 01:53:36.160
API
01:53:36.160 --> 01:53:36.560
client
01:53:36.560 --> 01:53:37.020
whether
01:53:37.020 --> 01:53:37.260
that
01:53:37.260 --> 01:53:37.560
may be
01:53:37.560 --> 01:53:38.000
postman
01:53:38.000 --> 01:53:38.180
or
01:53:38.180 --> 01:53:38.380
call
01:53:38.380 --> 01:53:38.720
request
01:53:38.720 --> 01:53:39.420
or
01:53:39.420 --> 01:53:39.640
a
01:53:39.640 --> 01:53:40.360
typical
01:53:40.360 --> 01:53:40.880
wget
01:53:40.880 --> 01:53:41.360
response
01:53:41.360 --> 01:53:41.600
or
01:53:41.600 --> 01:53:41.980
typical
01:53:41.980 --> 01:53:42.440
wget
01:53:42.440 --> 01:53:42.980
response
01:53:42.980 --> 01:53:43.600
or
01:53:43.600 --> 01:53:43.940
wget
01:53:43.940 --> 01:53:44.200
request
01:53:45.180 --> 01:53:45.900
that
01:53:45.900 --> 01:53:46.180
request
01:53:46.180 --> 01:53:46.540
will be
01:53:46.540 --> 01:53:46.800
routed
01:53:46.800 --> 01:53:47.040
over
01:53:47.040 --> 01:53:47.440
here
01:53:47.440 --> 01:53:47.920
these
01:53:47.920 --> 01:53:48.440
products
01:53:48.440 --> 01:53:49.140
here
01:53:49.140 --> 01:53:49.560
so
01:53:50.460 --> 01:53:51.100
and again
01:53:51.100 --> 01:53:51.600
this is
01:53:51.600 --> 01:53:51.780
get
01:53:51.780 --> 01:53:52.160
API
01:53:53.440 --> 01:53:54.160
so
01:53:54.160 --> 01:53:54.380
we'll
01:53:54.380 --> 01:53:54.540
be
01:53:54.540 --> 01:53:54.900
providing
01:53:54.900 --> 01:53:55.260
a
01:53:55.260 --> 01:53:55.780
display name
01:53:55.780 --> 01:53:56.080
and
01:53:56.080 --> 01:53:56.300
what
01:53:56.300 --> 01:53:56.900
the description
01:53:56.900 --> 01:53:57.260
that this
01:53:58.300 --> 01:53:58.520
API
01:53:58.520 --> 01:53:58.960
does
01:53:58.960 --> 01:53:59.760
and what are
01:53:59.760 --> 01:54:00.020
the query
01:54:00.020 --> 01:54:00.500
parameters
01:54:00.500 --> 01:54:01.420
and what
01:54:01.420 --> 01:54:01.820
the
01:54:01.820 --> 01:54:02.040
response
01:54:02.040 --> 01:54:02.260
it
01:54:02.260 --> 01:54:02.440
provides
01:54:03.680 --> 01:54:04.280
so
01:54:04.280 --> 01:54:05.140
that is
01:54:05.140 --> 01:54:05.420
till now
01:54:06.700 --> 01:54:07.380
when it
01:54:07.380 --> 01:54:07.620
comes
01:54:07.620 --> 01:54:08.200
to categories
01:54:08.200 --> 01:54:08.600
API
01:54:09.520 --> 01:54:10.280
this is
01:54:10.280 --> 01:54:10.560
one of
01:54:10.560 --> 01:54:10.740
the
01:54:10.740 --> 01:54:11.040
parent
01:54:12.360 --> 01:54:12.960
and
01:54:12.960 --> 01:54:13.920
you have
01:54:13.920 --> 01:54:14.160
this
01:54:14.160 --> 01:54:14.420
another
01:54:14.420 --> 01:54:14.660
parent
01:54:14.660 --> 01:54:14.920
called
01:54:14.920 --> 01:54:15.220
products
01:54:15.220 --> 01:54:15.640
parent
01:54:16.380 --> 01:54:16.840
so
01:54:16.840 --> 01:54:17.220
basically
01:54:17.220 --> 01:54:17.560
this
01:54:17.560 --> 01:54:17.720
products
01:54:17.720 --> 01:54:18.100
parent
01:54:18.100 --> 01:54:18.740
again
01:54:18.740 --> 01:54:19.120
this
01:54:19.120 --> 01:54:19.500
is the
01:54:19.500 --> 01:54:20.000
same
01:54:20.000 --> 01:54:20.520
like
01:54:20.520 --> 01:54:20.840
till now
01:54:20.840 --> 01:54:21.160
we are
01:54:21.160 --> 01:54:21.320
seeing
01:54:21.320 --> 01:54:21.780
only
01:54:22.800 --> 01:54:23.400
the
01:54:23.400 --> 01:54:23.900
get
01:54:23.900 --> 01:54:24.420
request
01:54:24.420 --> 01:54:25.300
right now
01:54:25.300 --> 01:54:25.760
we haven't
01:54:25.760 --> 01:54:26.400
seen any
01:54:26.400 --> 01:54:27.220
post request
01:54:27.760 --> 01:54:28.340
we'll be
01:54:28.340 --> 01:54:28.880
creating a
01:54:28.880 --> 01:54:29.800
post request
01:54:30.320 --> 01:54:31.020
right now
01:54:31.020 --> 01:54:31.280
so that
01:54:32.380 --> 01:54:33.580
by ourselves
01:54:33.580 --> 01:54:34.160
so that
01:54:34.760 --> 01:54:35.880
you know
01:54:35.880 --> 01:54:36.600
we'll
01:54:36.600 --> 01:54:37.040
have
01:54:37.040 --> 01:54:37.500
idea
01:54:37.500 --> 01:54:38.120
like
01:54:38.120 --> 01:54:38.560
what should
01:54:38.560 --> 01:54:39.040
be
01:54:39.040 --> 01:54:39.480
the things
01:54:39.480 --> 01:54:39.940
that we're
01:54:39.940 --> 01:54:40.220
gonna
01:54:40.220 --> 01:54:40.780
you know
01:54:40.780 --> 01:54:41.340
take care
01:54:41.340 --> 01:54:41.840
while
01:54:41.840 --> 01:54:42.440
creating
01:54:43.460 --> 01:54:44.140
specific
01:54:44.140 --> 01:54:44.480
API
01:54:44.480 --> 01:54:45.020
implementations
01:54:45.020 --> 01:54:45.780
by ourselves
01:54:45.780 --> 01:54:46.600
okay
01:54:46.600 --> 01:54:47.220
let me
01:54:47.220 --> 01:54:47.820
just create
01:54:47.820 --> 01:54:48.080
a
01:54:48.080 --> 01:54:48.320
playground
01:54:48.320 --> 01:54:48.660
over
01:54:49.380 --> 01:54:50.060
here
01:54:51.700 --> 01:54:52.380
yeah
01:54:52.380 --> 01:54:53.400
you can say
01:54:53.400 --> 01:54:53.860
right
01:54:53.860 --> 01:54:54.480
the screen
01:54:55.380 --> 01:54:55.860
basically
01:54:55.860 --> 01:54:56.540
it's in design center
01:54:56.540 --> 01:54:56.820
right now
01:54:57.920 --> 01:54:58.640
yeah
01:54:59.720 --> 01:55:00.440
so
01:55:00.440 --> 01:55:00.840
right now
01:55:00.840 --> 01:55:01.160
we'll be
01:55:01.160 --> 01:55:01.620
creating
01:55:01.620 --> 01:55:02.560
everything
01:55:02.560 --> 01:55:03.060
from scratch
01:55:05.280 --> 01:55:06.160
at least
01:55:06.160 --> 01:55:06.380
for
01:55:06.380 --> 01:55:06.680
post
01:55:06.680 --> 01:55:07.180
API
01:55:07.180 --> 01:55:07.820
by taking
01:55:07.820 --> 01:55:08.120
consider
01:55:08.120 --> 01:55:08.480
into
01:55:08.480 --> 01:55:09.500
like
01:55:09.500 --> 01:55:10.000
whatever
01:55:10.000 --> 01:55:10.260
we
01:55:10.920 --> 01:55:11.520
discuss
01:55:11.520 --> 01:55:12.000
till now
01:55:12.000 --> 01:55:12.320
so
01:55:12.320 --> 01:55:12.820
first
01:55:13.460 --> 01:55:13.900
this
01:55:13.900 --> 01:55:14.340
comes under
01:55:14.340 --> 01:55:14.800
like
01:55:14.800 --> 01:55:15.000
API
01:55:15.000 --> 01:55:15.480
designing
01:55:15.480 --> 01:55:16.220
part
01:55:16.220 --> 01:55:16.580
of
01:55:17.640 --> 01:55:17.800
new
01:55:17.800 --> 01:55:18.000
soft
01:55:18.000 --> 01:55:18.580
basically
01:55:18.580 --> 01:55:19.460
so
01:55:19.460 --> 01:55:19.920
let's say
01:55:19.920 --> 01:55:20.260
you wanted
01:55:20.260 --> 01:55:20.940
to create
01:55:20.940 --> 01:55:21.620
a
01:55:21.620 --> 01:55:22.360
post request
01:55:22.360 --> 01:55:22.900
or
01:55:22.900 --> 01:55:23.420
post
01:55:23.420 --> 01:55:23.940
catalog
01:55:23.940 --> 01:55:24.720
or
01:55:24.720 --> 01:55:25.320
post product
01:55:25.320 --> 01:55:25.960
let's say
01:55:25.960 --> 01:55:26.480
the main
01:55:26.480 --> 01:55:26.780
agenda
01:55:26.780 --> 01:55:27.620
for this
01:55:27.620 --> 01:55:29.200
API is to
01:55:29.840 --> 01:55:30.440
post
01:55:30.440 --> 01:55:31.320
a product
01:55:32.480 --> 01:55:33.400
to the
01:55:33.400 --> 01:55:33.760
database
01:55:36.620 --> 01:55:38.020
this is
01:55:38.020 --> 01:55:38.620
one of
01:55:38.620 --> 01:55:38.800
the
01:55:38.800 --> 01:55:39.180
agenda
01:55:39.980 --> 01:55:40.680
and
01:55:40.680 --> 01:55:40.960
first
01:55:40.960 --> 01:55:41.400
we have to
01:55:41.400 --> 01:55:42.020
understand
01:55:42.020 --> 01:55:42.780
what is
01:55:43.960 --> 01:55:44.660
the
01:55:44.660 --> 01:55:45.060
the route
01:55:45.060 --> 01:55:45.740
typically
01:55:45.740 --> 01:55:46.780
the best
01:55:46.780 --> 01:55:47.180
convention
01:55:47.180 --> 01:55:47.680
is to
01:55:47.680 --> 01:55:48.220
follow
01:55:48.220 --> 01:55:48.880
the same
01:55:49.720 --> 01:55:50.240
routes
01:55:50.240 --> 01:55:50.740
that are
01:55:50.740 --> 01:55:50.980
already
01:55:50.980 --> 01:55:51.380
there
01:55:51.380 --> 01:55:52.220
till now
01:55:52.220 --> 01:55:53.080
so for us
01:55:53.080 --> 01:55:53.920
it is
01:55:53.920 --> 01:55:54.100
already
01:55:54.100 --> 01:55:54.620
there
01:55:54.720 --> 01:55:56.240
but the product out is already there
01:55:56.240 --> 01:55:57.720
so we just use that itself
01:55:58.640 --> 01:55:59.160
then
01:55:59.160 --> 01:56:00.360
user will be confused
01:56:01.760 --> 01:56:02.800
what is the get request
01:56:02.800 --> 01:56:04.100
and what is the post request
01:56:04.100 --> 01:56:05.760
so we have to handle that
01:56:07.900 --> 01:56:08.420
while
01:56:08.420 --> 01:56:09.660
pushing the API itself
01:56:09.660 --> 01:56:09.920
I mean
01:56:09.920 --> 01:56:10.200
while
01:56:10.200 --> 01:56:11.160
hitting the API
01:56:11.160 --> 01:56:11.960
a user
01:56:13.120 --> 01:56:14.160
has this
01:56:14.160 --> 01:56:14.720
control over
01:56:16.520 --> 01:56:17.360
API method
01:56:17.360 --> 01:56:18.680
he is
01:56:18.680 --> 01:56:19.060
posting
01:56:19.060 --> 01:56:19.940
or
01:56:19.940 --> 01:56:20.720
hitting towards
01:56:20.720 --> 01:56:21.440
so
01:56:21.440 --> 01:56:21.700
I mean
01:56:21.700 --> 01:56:22.680
we have this
01:56:22.680 --> 01:56:23.240
hands-on session
01:56:23.240 --> 01:56:23.580
with the
01:56:23.580 --> 01:56:23.840
postman
01:56:24.400 --> 01:56:24.800
tool
01:56:24.800 --> 01:56:25.620
so with that
01:56:25.620 --> 01:56:26.560
we can understand
01:56:26.560 --> 01:56:28.300
how the user can understand
01:56:28.300 --> 01:56:30.160
what is the
01:56:30.160 --> 01:56:31.060
request that is his
01:56:31.060 --> 01:56:31.700
that he is hitting
01:56:32.440 --> 01:56:33.420
so for this
01:56:33.420 --> 01:56:35.060
we will be providing the description
01:56:35.680 --> 01:56:36.800
for this description
01:56:36.800 --> 01:56:37.680
we just provide
01:56:39.600 --> 01:56:40.160
like
01:56:41.600 --> 01:56:42.720
to post
01:56:42.720 --> 01:56:43.440
a new
01:56:44.820 --> 01:56:45.380
product
01:56:47.440 --> 01:56:48.440
to catalog
01:56:49.180 --> 01:56:49.740
and
01:56:49.740 --> 01:56:50.980
what is the API method
01:56:50.980 --> 01:56:51.900
that we have discussed
01:56:51.900 --> 01:56:53.100
it is post method
01:56:54.140 --> 01:56:56.220
so whenever let's say
01:56:56.220 --> 01:56:56.880
user
01:56:56.880 --> 01:56:57.680
came here
01:56:59.040 --> 01:56:59.680
and
01:56:59.680 --> 01:57:00.700
user wanted to see
01:57:00.700 --> 01:57:01.660
what this
01:57:01.660 --> 01:57:02.280
API does
01:57:02.280 --> 01:57:03.080
in a
01:57:03.080 --> 01:57:03.980
you know
01:57:03.980 --> 01:57:05.100
very concise manner
01:57:05.760 --> 01:57:06.780
here we will be providing
01:57:06.780 --> 01:57:07.680
a display name
01:57:07.680 --> 01:57:09.260
this display name
01:57:09.260 --> 01:57:09.980
is a attribute
01:57:09.980 --> 01:57:11.100
which is a built-in attribute
01:57:11.100 --> 01:57:11.720
again
01:57:11.720 --> 01:57:12.700
in newsoft
01:57:12.700 --> 01:57:13.820
this display name
01:57:13.820 --> 01:57:14.880
provides us
01:57:14.880 --> 01:57:15.620
an option
01:57:15.620 --> 01:57:17.000
to provide a concise name
01:57:17.000 --> 01:57:17.940
so that
01:57:17.940 --> 01:57:18.620
user can
01:57:18.620 --> 01:57:19.760
see what exactly this
01:57:20.440 --> 01:57:22.100
this specific API does
01:57:22.100 --> 01:57:22.540
basically
01:57:23.960 --> 01:57:24.480
post
01:57:24.480 --> 01:57:25.540
a new product
01:57:25.540 --> 01:57:26.640
that's all
01:57:26.640 --> 01:57:27.780
and then
01:57:27.780 --> 01:57:28.420
we just provide
01:57:28.420 --> 01:57:29.720
the description of this request
01:57:29.720 --> 01:57:30.960
the first and foremost thing is
01:57:32.800 --> 01:57:33.320
unnamed
01:57:33.320 --> 01:57:33.900
syntax
01:57:34.400 --> 01:57:35.120
so white lines
01:57:35.120 --> 01:57:36.460
that we are having right now
01:57:36.460 --> 01:57:38.140
if you have any mistake over here
01:57:38.140 --> 01:57:39.180
then the program
01:57:39.720 --> 01:57:41.120
API will not be compiling
01:57:41.120 --> 01:57:41.940
and it will be throwing
01:57:41.940 --> 01:57:42.640
a lot of errors
01:57:44.320 --> 01:57:46.060
we will have to double shoot
01:57:46.060 --> 01:57:47.300
what exactly the error
01:57:47.300 --> 01:57:48.280
has happened
01:57:48.280 --> 01:57:49.120
mostly
01:57:49.120 --> 01:57:50.420
for beginners
01:57:50.420 --> 01:57:51.740
the errors will be coming
01:57:52.520 --> 01:57:53.560
from this
01:57:54.520 --> 01:57:55.980
like the white spaces
01:57:55.980 --> 01:57:57.000
for this yaml
01:57:57.000 --> 01:57:58.240
until you get familiarized
01:57:58.240 --> 01:57:59.500
with the yaml-based syntax
01:57:59.500 --> 01:58:00.540
and get used to
01:58:00.540 --> 01:58:01.340
yaml-based syntax
01:58:01.340 --> 01:58:02.140
each and
01:58:02.140 --> 01:58:03.220
if you have provided
01:58:03.220 --> 01:58:04.360
a single
01:58:04.360 --> 01:58:04.900
white line
01:58:04.900 --> 01:58:06.000
white space over here
01:58:06.000 --> 01:58:07.080
then you can mistake
01:58:09.000 --> 01:58:09.600
description
01:58:09.600 --> 01:58:10.320
we will be providing
01:58:10.320 --> 01:58:11.220
the same description
01:58:11.220 --> 01:58:12.420
so but
01:58:12.420 --> 01:58:13.880
you have these two descriptions
01:58:13.880 --> 01:58:14.200
right
01:58:14.200 --> 01:58:15.280
what exactly the difference
01:58:15.280 --> 01:58:16.060
between them
01:58:16.060 --> 01:58:17.080
this description is
01:58:18.040 --> 01:58:18.640
more
01:58:18.640 --> 01:58:19.720
concentrated towards this
01:58:20.860 --> 01:58:21.660
root level API
01:58:21.660 --> 01:58:22.680
but this description
01:58:22.680 --> 01:58:23.320
is mostly
01:58:23.320 --> 01:58:24.700
concentrated towards the
01:58:24.700 --> 01:58:26.020
post method
01:58:26.020 --> 01:58:26.920
let's say for
01:58:27.660 --> 01:58:28.640
only product API
01:58:28.640 --> 01:58:29.920
you have two methods
01:58:29.920 --> 01:58:30.600
like get method
01:58:30.600 --> 01:58:31.420
and post method
01:58:31.420 --> 01:58:32.380
then you
01:58:32.380 --> 01:58:33.580
you should have two descriptions
01:58:33.580 --> 01:58:34.400
right
01:58:34.400 --> 01:58:34.900
the get
01:58:34.900 --> 01:58:35.620
for get request
01:58:35.620 --> 01:58:36.680
there should be one request
01:58:36.680 --> 01:58:37.420
one description
01:58:37.420 --> 01:58:38.120
and for post
01:58:38.120 --> 01:58:38.580
there should be
01:58:38.580 --> 01:58:39.360
another description
01:58:39.360 --> 01:58:40.360
so this is
01:58:41.520 --> 01:58:43.220
HTTP method level description
01:58:43.220 --> 01:58:44.640
and this is
01:58:44.640 --> 01:58:45.760
API level description
01:58:47.480 --> 01:58:49.880
so but the best
01:58:49.880 --> 01:58:51.640
description for this is
01:58:51.640 --> 01:58:52.600
prod manage
01:58:52.600 --> 01:58:54.000
product management
01:58:55.320 --> 01:58:56.440
to avoid confusions
01:59:08.120 --> 01:59:09.600
and query parameters
01:59:10.200 --> 01:59:11.260
so based on
01:59:11.260 --> 01:59:12.840
your specific application
01:59:12.840 --> 01:59:13.920
and based on
01:59:13.920 --> 01:59:14.840
your specific business
01:59:14.840 --> 01:59:15.460
requirements
01:59:15.460 --> 01:59:16.520
and based on
01:59:18.920 --> 01:59:20.820
the consumers applications
01:59:21.320 --> 01:59:22.020
requirements
01:59:22.020 --> 01:59:24.080
I mean will be defining
01:59:24.080 --> 01:59:25.180
our query parameters
01:59:25.180 --> 01:59:25.880
over here
01:59:25.880 --> 01:59:27.120
there are a lot of
01:59:27.120 --> 01:59:28.100
query parameters
01:59:28.100 --> 01:59:29.220
and all of them
01:59:29.220 --> 01:59:29.860
are dynamic
01:59:29.860 --> 01:59:30.940
so MuleSoft is
01:59:30.940 --> 01:59:31.860
not going to complain
01:59:31.860 --> 01:59:33.100
that you have provided
01:59:33.100 --> 01:59:33.940
this specific query
01:59:33.940 --> 01:59:34.480
parameter
01:59:34.480 --> 01:59:35.900
or something like that
01:59:35.900 --> 01:59:36.740
but only thing
01:59:37.560 --> 01:59:38.260
which is
01:59:40.160 --> 01:59:41.560
which should be defined
01:59:41.560 --> 01:59:42.300
is
01:59:42.300 --> 01:59:43.480
this query parameters
01:59:43.480 --> 01:59:45.120
definition over here
01:59:45.120 --> 01:59:47.500
this should be
01:59:48.320 --> 01:59:49.020
standalone
01:59:49.020 --> 01:59:51.060
and MuleSoft defined syntax
01:59:51.060 --> 01:59:52.480
so this should not be changed
01:59:52.480 --> 01:59:52.740
even
01:59:53.340 --> 01:59:54.860
capital P to small p
01:59:54.860 --> 01:59:56.080
you can't modify that
01:59:56.080 --> 01:59:57.220
but after this
01:59:57.940 --> 01:59:58.740
query parameters
01:59:58.740 --> 01:59:59.780
you can write
01:59:59.780 --> 02:00:00.820
anything of your
02:00:01.480 --> 02:00:03.640
basically all of these are
02:00:03.640 --> 02:00:04.580
dynamic streams
02:00:05.140 --> 02:00:05.620
let's say
02:00:06.140 --> 02:00:07.280
for this specific
02:00:07.280 --> 02:00:08.360
product designing
02:00:09.220 --> 02:00:10.340
we want to maintain
02:00:11.360 --> 02:00:12.560
price of the product
02:00:12.560 --> 02:00:12.820
maybe
02:00:13.960 --> 02:00:14.640
yeah
02:00:14.640 --> 02:00:15.340
we have that
02:00:15.340 --> 02:00:16.040
and that should be
02:00:16.040 --> 02:00:17.060
a compulsory query
02:00:17.060 --> 02:00:17.880
query parameter
02:00:17.880 --> 02:00:19.020
so we'll not be passing
02:00:19.020 --> 02:00:19.960
any koshimak symbol
02:00:19.960 --> 02:00:20.540
over there
02:00:21.060 --> 02:00:22.420
and we'll just describe
02:00:24.220 --> 02:00:25.440
mostly this
02:00:25.440 --> 02:00:26.180
price should be
02:00:26.180 --> 02:00:27.060
a floating point integer
02:00:29.200 --> 02:00:29.840
float
02:00:30.520 --> 02:00:31.160
so
02:00:31.160 --> 02:00:32.340
and again yeah
02:00:32.340 --> 02:00:33.080
just for nothing
02:00:33.080 --> 02:00:34.220
I forgot to implement
02:00:34.220 --> 02:00:35.060
I forgot to type
02:00:35.060 --> 02:00:36.560
so we have
02:00:36.560 --> 02:00:37.500
data types inside
02:00:37.500 --> 02:00:38.920
this MuleSoft
02:00:38.920 --> 02:00:39.580
basically
02:00:39.580 --> 02:00:40.740
a data type
02:00:40.740 --> 02:00:41.780
in a MuleSoft
02:00:41.780 --> 02:00:42.440
there are like
02:00:42.440 --> 02:00:43.220
lot of data types
02:00:43.220 --> 02:00:43.540
we have
02:00:44.640 --> 02:00:45.280
strings
02:00:45.280 --> 02:00:46.180
which are
02:00:48.160 --> 02:00:49.060
alphabetical strings
02:00:49.060 --> 02:00:49.760
basically
02:00:51.060 --> 02:00:52.280
we can call them as
02:00:52.280 --> 02:00:52.800
sentences
02:00:52.800 --> 02:00:53.860
or words
02:00:55.100 --> 02:00:55.740
with
02:00:55.740 --> 02:00:56.480
white space
02:00:56.480 --> 02:00:57.280
between them
02:00:57.280 --> 02:00:58.760
and we have
02:00:58.760 --> 02:00:59.580
integers
02:01:00.300 --> 02:01:01.560
integers consist of
02:01:01.560 --> 02:01:02.520
only whole number
02:01:02.520 --> 02:01:02.880
integers
02:01:02.880 --> 02:01:03.560
basically
02:01:03.560 --> 02:01:04.500
it can't
02:01:05.960 --> 02:01:06.460
contain
02:01:06.460 --> 02:01:07.940
decimal values
02:01:07.940 --> 02:01:08.760
basically for
02:01:08.760 --> 02:01:09.340
decimal values
02:01:09.340 --> 02:01:10.480
or pointed
02:01:11.380 --> 02:01:12.020
numbers
02:01:12.020 --> 02:01:12.760
we'll be having
02:01:12.760 --> 02:01:13.900
float as a data type
02:01:13.900 --> 02:01:14.980
and we also have
02:01:16.140 --> 02:01:16.780
Boolean
02:01:16.780 --> 02:01:17.620
let's say for
02:01:17.620 --> 02:01:18.500
few of these scenarios
02:01:18.500 --> 02:01:20.240
there might be
02:01:20.240 --> 02:01:21.040
true or false
02:01:22.720 --> 02:01:23.320
implementations
02:01:23.320 --> 02:01:24.720
in those scenarios
02:01:25.300 --> 02:01:26.120
Boolean will be
02:01:26.120 --> 02:01:26.420
the better
02:01:27.360 --> 02:01:27.920
data point
02:01:27.920 --> 02:01:28.800
that we're going to choose
02:01:28.800 --> 02:01:29.780
so mostly
02:01:29.780 --> 02:01:31.020
these will be the
02:01:31.020 --> 02:01:32.260
and we also have this
02:01:34.960 --> 02:01:36.060
object data type
02:01:36.060 --> 02:01:36.960
so for custom
02:01:36.960 --> 02:01:37.480
implementation
02:01:37.480 --> 02:01:38.360
so we have this
02:01:38.360 --> 02:01:38.900
custom
02:01:38.900 --> 02:01:40.340
object data type
02:01:40.340 --> 02:01:41.300
so mostly this is
02:01:42.740 --> 02:01:43.900
not a preliminary
02:01:43.900 --> 02:01:44.680
data type
02:01:44.680 --> 02:01:45.840
this is
02:01:45.840 --> 02:01:47.040
more complex data type
02:01:47.040 --> 02:01:48.060
which consists of
02:01:48.060 --> 02:01:48.780
all the
02:01:48.780 --> 02:01:49.080
strings
02:01:49.080 --> 02:01:49.520
integers
02:01:49.520 --> 02:01:50.020
floats
02:01:50.020 --> 02:01:51.040
these
02:01:51.040 --> 02:01:52.160
all will be
02:01:52.160 --> 02:01:52.780
embedded inside
02:01:52.780 --> 02:01:53.620
this object data type
02:01:53.620 --> 02:01:54.420
basically
02:01:54.420 --> 02:01:55.820
that's how it works
02:01:55.820 --> 02:01:56.880
yeah back to
02:01:56.880 --> 02:01:57.260
implementation
02:01:57.260 --> 02:01:58.280
yeah we have this
02:01:58.280 --> 02:01:58.820
price
02:01:58.820 --> 02:01:59.840
and it
02:01:59.840 --> 02:02:00.640
corresponds to
02:02:00.640 --> 02:02:01.040
float
02:02:01.040 --> 02:02:01.900
and again
02:02:01.900 --> 02:02:03.400
let's just think of
02:02:03.400 --> 02:02:04.400
another thing
02:02:05.380 --> 02:02:06.060
maybe
02:02:06.800 --> 02:02:07.680
name of the product
02:02:11.700 --> 02:02:12.680
typically names
02:02:12.680 --> 02:02:14.040
will be
02:02:14.040 --> 02:02:14.660
sentences
02:02:15.280 --> 02:02:16.080
so we can use
02:02:16.080 --> 02:02:16.680
string
02:02:17.440 --> 02:02:17.520
and
02:02:18.460 --> 02:02:19.940
based on business
02:02:19.940 --> 02:02:21.440
we want to have
02:02:21.440 --> 02:02:21.980
expiry date
02:02:21.980 --> 02:02:23.480
of this product as well
02:02:23.480 --> 02:02:24.500
that is one of the
02:02:24.500 --> 02:02:25.120
hard rule of
02:02:25.120 --> 02:02:25.680
implementation
02:02:26.560 --> 02:02:27.160
that
02:02:28.060 --> 02:02:29.460
people want to give
02:02:29.460 --> 02:02:30.500
so expiry date
02:02:32.060 --> 02:02:33.900
so it depends upon us
02:02:33.900 --> 02:02:34.840
how we want to design
02:02:34.840 --> 02:02:35.560
this
02:02:35.560 --> 02:02:36.320
specific
02:02:36.320 --> 02:02:37.300
API implementation
02:02:38.200 --> 02:02:39.240
and expiry date
02:02:39.240 --> 02:02:39.620
mostly
02:02:41.820 --> 02:02:43.020
would be
02:02:43.020 --> 02:02:43.560
strings
02:02:43.560 --> 02:02:44.520
but we also have
02:02:44.520 --> 02:02:45.820
enum data type
02:02:45.820 --> 02:02:46.640
that is specific
02:02:46.640 --> 02:02:47.920
to Java implementation
02:02:47.920 --> 02:02:49.420
and we have this
02:02:49.420 --> 02:02:50.960
based methodology
02:02:50.960 --> 02:02:51.860
over here
02:02:51.860 --> 02:02:52.420
inside
02:02:52.420 --> 02:02:53.240
MuleSoft
02:02:53.240 --> 02:02:54.000
we'll be discussing
02:02:54.000 --> 02:02:55.300
that with the help of
02:02:55.300 --> 02:02:56.000
Anypoint Studio
02:02:56.000 --> 02:02:57.280
when it comes to there
02:02:57.280 --> 02:02:58.600
I'll be
02:02:58.600 --> 02:02:59.460
describing how to
02:02:59.460 --> 02:02:59.820
integrate
02:02:59.820 --> 02:03:00.980
Java based
02:03:00.980 --> 02:03:01.520
scripts or
02:03:01.520 --> 02:03:02.300
Python based scripts
02:03:02.300 --> 02:03:02.940
inside MuleSoft
02:03:03.600 --> 02:03:04.280
but yeah
02:03:04.280 --> 02:03:04.960
we can just
02:03:06.060 --> 02:03:06.940
string over here
02:03:08.240 --> 02:03:09.080
and yeah
02:03:09.080 --> 02:03:09.720
so these are the
02:03:09.720 --> 02:03:10.520
query parameters
02:03:12.000 --> 02:03:13.200
now let's
02:03:13.200 --> 02:03:13.740
go with the
02:03:13.740 --> 02:03:14.800
response model
02:03:18.000 --> 02:03:19.540
so for responses
02:03:20.340 --> 02:03:21.240
we have to
02:03:21.240 --> 02:03:21.860
handle a couple of
02:03:21.860 --> 02:03:22.480
scenarios over here
02:03:23.300 --> 02:03:24.140
because since
02:03:24.140 --> 02:03:25.180
this is post request
02:03:25.180 --> 02:03:26.560
this is much more
02:03:26.560 --> 02:03:27.140
complicated
02:03:27.140 --> 02:03:28.800
when it compared to
02:03:28.800 --> 02:03:30.040
when we compared to
02:03:30.040 --> 02:03:30.780
get request
02:03:30.780 --> 02:03:31.520
because
02:03:31.520 --> 02:03:32.280
I mean
02:03:32.280 --> 02:03:32.760
get requests
02:03:32.760 --> 02:03:33.660
are mostly
02:03:33.660 --> 02:03:34.640
200 request or
02:03:36.020 --> 02:03:36.820
404 request
02:03:36.820 --> 02:03:37.380
that's all
02:03:37.380 --> 02:03:39.160
but for post request
02:03:39.160 --> 02:03:40.520
we have to handle
02:03:40.520 --> 02:03:41.180
couple of other
02:03:41.180 --> 02:03:42.260
scenarios as well
02:03:42.260 --> 02:03:43.060
let's say
02:03:43.060 --> 02:03:43.600
first we'll go
02:03:43.600 --> 02:03:44.120
with positive
02:03:44.120 --> 02:03:44.600
scenarios
02:03:45.380 --> 02:03:46.120
201
02:03:47.200 --> 02:03:48.080
so for this
02:03:48.080 --> 02:03:49.000
specific response
02:03:49.000 --> 02:03:49.780
let's say
02:03:49.780 --> 02:03:50.420
we're providing
02:03:53.560 --> 02:03:54.880
a lot of typos
02:03:55.820 --> 02:03:57.660
which is passing
02:04:11.260 --> 02:04:13.200
so for response
02:04:13.200 --> 02:04:14.220
we have two things
02:04:14.220 --> 02:04:15.100
which is embedded
02:04:15.100 --> 02:04:16.000
one is
02:04:16.000 --> 02:04:17.040
response status code
02:04:17.040 --> 02:04:18.080
which is this one
02:04:18.080 --> 02:04:19.360
and response body
02:04:19.360 --> 02:04:20.360
so basically
02:04:20.360 --> 02:04:21.120
a response body
02:04:21.120 --> 02:04:21.660
consists of
02:04:22.920 --> 02:04:23.940
a JSON format
02:04:23.940 --> 02:04:25.120
as I've already told
02:04:25.120 --> 02:04:26.020
so basically
02:04:26.020 --> 02:04:26.900
this JSON format
02:04:26.900 --> 02:04:27.540
will be
02:04:27.540 --> 02:04:28.620
I mean
02:04:28.620 --> 02:04:29.880
will be describing
02:04:29.880 --> 02:04:31.180
MuleSoft
02:04:31.180 --> 02:04:31.420
to
02:04:32.260 --> 02:04:33.560
use JSON as
02:04:33.560 --> 02:04:34.620
hard rule
02:04:35.180 --> 02:04:35.760
so
02:04:35.760 --> 02:04:36.400
similarly
02:04:36.400 --> 02:04:37.360
we'll be providing
02:04:37.360 --> 02:04:38.160
application slash
02:04:38.160 --> 02:04:39.260
JSON over here
02:04:39.260 --> 02:04:40.180
so that
02:04:40.180 --> 02:04:41.340
MuleSoft can understand
02:04:41.900 --> 02:04:42.640
what exactly
02:04:42.640 --> 02:04:44.080
the response format
02:04:44.080 --> 02:04:44.320
should be
02:04:45.720 --> 02:04:46.880
and then type
02:04:50.420 --> 02:04:51.480
will be just
02:04:51.480 --> 02:04:52.000
using this
02:04:53.400 --> 02:04:54.840
JSON response over here
02:04:55.520 --> 02:04:56.520
as an example
02:04:56.520 --> 02:04:57.300
since this is
02:04:57.300 --> 02:04:59.280
product implementation only
02:04:59.280 --> 02:05:00.700
so that should be fine
02:05:01.520 --> 02:05:02.380
but this
02:05:02.380 --> 02:05:02.820
I mean
02:05:02.820 --> 02:05:03.340
this should be
02:05:03.340 --> 02:05:05.000
already coming from
02:05:05.000 --> 02:05:05.820
already other
02:05:05.820 --> 02:05:06.980
developer module
02:05:07.640 --> 02:05:08.620
basically I've told
02:05:08.620 --> 02:05:09.040
will be
02:05:09.620 --> 02:05:10.840
breaking up modules
02:05:10.840 --> 02:05:11.680
and just importing
02:05:11.680 --> 02:05:12.100
the modules
02:05:12.100 --> 02:05:13.000
again and again
02:05:13.000 --> 02:05:13.800
so that we
02:05:13.800 --> 02:05:14.360
can achieve
02:05:16.980 --> 02:05:17.620
modularity
02:05:17.620 --> 02:05:18.600
inside the MuleSoft
02:05:18.600 --> 02:05:19.360
implementations
02:05:19.360 --> 02:05:20.240
so that's why
02:05:20.240 --> 02:05:21.020
we're just referencing
02:05:21.020 --> 02:05:21.980
this over here
02:05:21.980 --> 02:05:22.500
or else
02:05:22.500 --> 02:05:22.920
we have to
02:05:23.600 --> 02:05:24.800
start defining
02:05:24.800 --> 02:05:25.440
type
02:05:25.440 --> 02:05:26.480
from here
02:05:26.480 --> 02:05:27.500
and it will be like
02:05:28.600 --> 02:05:29.240
multiple
02:05:29.240 --> 02:05:29.940
multiple nestings
02:05:29.940 --> 02:05:30.640
and
02:05:30.640 --> 02:05:31.620
project gonna be messy
02:05:31.620 --> 02:05:32.660
if we don't
02:05:32.660 --> 02:05:33.240
reuse things
02:05:34.180 --> 02:05:34.820
over
02:05:34.820 --> 02:05:36.140
different implementations
02:05:36.140 --> 02:05:37.380
so that's how it works
02:05:37.380 --> 02:05:37.940
basically
02:05:38.620 --> 02:05:40.220
so you have this
02:05:40.220 --> 02:05:41.280
you've got my point
02:05:41.280 --> 02:05:43.160
so this is one of the
02:05:44.060 --> 02:05:46.840
best I mean
02:05:46.840 --> 02:05:47.720
positive scenario
02:05:47.720 --> 02:05:48.580
let's say
02:05:48.580 --> 02:05:49.900
user is not at all authorized
02:05:49.900 --> 02:05:51.120
to do this operation
02:05:51.120 --> 02:05:51.800
like
02:05:51.800 --> 02:05:52.540
creating a product
02:05:52.540 --> 02:05:54.200
so in that scenario
02:05:54.200 --> 02:05:54.920
we have to provide
02:05:55.780 --> 02:05:57.080
bad response
02:05:58.100 --> 02:05:59.360
so 401
02:05:59.360 --> 02:06:01.020
provides us unauthorized
02:06:01.640 --> 02:06:02.500
so how
02:06:02.500 --> 02:06:03.420
we're going to be handling
02:06:03.420 --> 02:06:04.140
this
02:06:04.140 --> 02:06:05.480
of 401 response
02:06:05.480 --> 02:06:06.600
so basically
02:06:09.940 --> 02:06:11.220
we'll be providing
02:06:11.220 --> 02:06:12.620
first description to this
02:06:13.180 --> 02:06:14.320
let me just
02:06:14.320 --> 02:06:15.100
capture the description
02:06:15.100 --> 02:06:15.500
and then
02:06:16.340 --> 02:06:16.860
you wanna write
02:06:27.660 --> 02:06:28.740
and then
02:06:28.740 --> 02:06:30.180
we don't pass any
02:06:30.180 --> 02:06:31.480
body for 401
02:06:31.480 --> 02:06:31.820
because
02:06:32.920 --> 02:06:34.180
it itself is like
02:06:34.180 --> 02:06:35.080
something is fishy
02:06:35.080 --> 02:06:36.400
because user did not
02:06:36.400 --> 02:06:37.040
pass any headers
02:06:37.040 --> 02:06:38.360
to this specific implementation
02:06:38.360 --> 02:06:39.500
so we don't want to
02:06:39.500 --> 02:06:40.240
reveal any details
02:06:40.240 --> 02:06:41.420
so that's why
02:06:41.420 --> 02:06:42.420
it's best practice
02:06:43.140 --> 02:06:44.560
and not to provide any body
02:06:44.560 --> 02:06:46.500
but no one stops you
02:06:46.500 --> 02:06:47.420
from providing body
02:06:47.420 --> 02:06:48.640
so we have to adhere
02:06:48.640 --> 02:06:49.620
to the best practices
02:06:49.620 --> 02:06:51.560
and stop providing
02:06:51.560 --> 02:06:53.760
bodies for 401 responses
02:06:53.760 --> 02:06:55.360
we should only provide
02:06:55.360 --> 02:06:56.620
user is not authorized
02:06:56.620 --> 02:06:57.480
to create the product
02:06:57.480 --> 02:06:58.500
and we don't need to pass
02:06:58.500 --> 02:06:59.900
even the username as well
02:06:59.900 --> 02:07:00.580
because that is
02:07:01.720 --> 02:07:03.140
deviating from the best practices
02:07:03.140 --> 02:07:04.160
let's say
02:07:04.160 --> 02:07:05.460
user is authenticated
02:07:05.460 --> 02:07:07.460
to the
02:07:07.460 --> 02:07:08.180
implementation
02:07:08.180 --> 02:07:08.980
but he's not
02:07:10.660 --> 02:07:11.260
having
02:07:11.260 --> 02:07:13.020
enough privileges to do this
02:07:13.020 --> 02:07:13.760
so in that scenario
02:07:13.760 --> 02:07:15.660
we'll be passing 403
02:07:15.660 --> 02:07:16.140
over here
02:07:18.840 --> 02:07:19.400
and
02:07:19.400 --> 02:07:21.200
we'll be passing the description
02:07:22.380 --> 02:07:22.940
again
02:07:25.040 --> 02:07:26.860
so that's how this one works
02:07:26.860 --> 02:07:27.460
so mostly
02:07:27.460 --> 02:07:28.320
this will be the
02:07:28.320 --> 02:07:29.440
implementation scenario
02:07:30.140 --> 02:07:31.500
maybe let's go for
02:07:31.500 --> 02:07:32.220
one of the exercises
02:07:32.220 --> 02:07:33.260
right now
02:07:33.260 --> 02:07:34.040
if you're comfortable
02:07:34.040 --> 02:07:35.180
shall we do this
02:07:36.400 --> 02:07:38.360
let me just paste this
02:07:38.360 --> 02:07:39.580
in chat box right now
02:07:40.160 --> 02:07:41.240
and you can share
02:07:41.240 --> 02:07:41.840
your screen
02:07:41.840 --> 02:07:43.160
and start creating
02:07:43.160 --> 02:07:44.140
one of the implementation
02:07:44.140 --> 02:07:45.400
I'll just paste this
02:07:45.400 --> 02:07:45.960
in the chat box
02:07:49.920 --> 02:07:50.920
so that you can have
02:07:50.920 --> 02:07:52.360
some reference
02:08:07.480 --> 02:08:08.940
yeah I can see it
02:08:14.520 --> 02:08:17.340
okay you have any notepad with you
02:08:17.340 --> 02:08:17.920
notepad
02:08:26.920 --> 02:08:29.160
let me just paste one
02:08:30.540 --> 02:08:32.120
so I'll just give you
02:08:32.120 --> 02:08:33.940
a scenario basically right now
02:08:33.940 --> 02:08:36.540
we wanted to create an API
02:08:37.560 --> 02:08:40.240
for one of the application
02:08:40.240 --> 02:08:42.520
which provides
02:08:42.520 --> 02:08:43.040
a list of
02:08:45.960 --> 02:08:46.480
services
02:08:46.480 --> 02:08:47.500
that is going to be providing
02:08:47.500 --> 02:08:48.760
so the end point
02:08:48.760 --> 02:08:49.900
will be slash services
02:08:50.760 --> 02:08:52.400
and we wanted to handle
02:08:53.840 --> 02:08:55.360
posting a new service
02:08:55.360 --> 02:08:57.100
and deleting a new service
02:08:57.100 --> 02:08:57.540
sorry
02:08:57.540 --> 02:08:59.620
deleting an existing service
02:09:08.320 --> 02:09:11.660
which is yeah thank you