WEBVTT
Kind: captions
Language: en

00:00:00.030 --> 00:00:04.850
Let's go over some of the technologies
were going to be using in this course

00:00:04.850 --> 00:00:10.940
the technologies were going to use to
build our REST API are  VirtualBox

00:00:10.940 --> 00:00:19.619
vagrant Python Django the Django rest
framework atom editor git and the mod

00:00:19.619 --> 00:00:22.260
header chrome extension

00:00:22.260 --> 00:00:24.960
all of these
will work together to produce our

00:00:24.960 --> 00:00:28.440
working REST API

00:00:28.440 --> 00:00:32.399
to better explain how
they fit together I've divided them into

00:00:32.399 --> 00:00:34.560
three categories

00:00:34.560 --> 00:00:37.440
category one
development server

00:00:37.440 --> 00:00:38.510
number two

00:00:38.510 --> 00:00:40.360
application code

00:00:40.360 --> 00:00:43.820
and number three tools

00:00:43.820 --> 00:00:46.559
as we write our code we'll want to test

00:00:46.559 --> 00:00:52.170
it on our machine many developers run
code directly on their local operating

00:00:52.170 --> 00:00:56.850
system this may be the quickest way to
get going but it can create a number of

00:00:56.850 --> 00:01:02.280
problems when working on real-world apps
such as making collaboration with other

00:01:02.280 --> 00:01:07.200
developers extremely difficult problems
when trying to run our app on different

00:01:07.200 --> 00:01:12.150
operating systems such as Windows and
Mac issues with our development app

00:01:12.150 --> 00:01:17.580
conflicting with applications we have
installed on our machine over time it

00:01:17.580 --> 00:01:23.070
can clog up our machine with dev tools
and packages and finally we're running

00:01:23.070 --> 00:01:26.909
our code on a completely different
operating system then we'll be using on

00:01:26.909 --> 00:01:32.250
the production server that's why
professional programmers always run

00:01:32.250 --> 00:01:36.810
their code on a local development server
to isolate their code from their local

00:01:36.810 --> 00:01:41.939
desktop it's best practice so we'll be
doing it here in this course using the

00:01:41.939 --> 00:01:44.420
following tools

00:01:44.420 --> 00:01:49.740
the first tool we'll use
is vagrant vagrant allows us to describe

00:01:49.740 --> 00:01:52.900
what kind of server we need for our app

00:01:52.900 --> 00:01:55.710
we can then save the config as a vagrant

00:01:55.710 --> 00:02:00.899
file which allows us to easily reproduce
and share the same server with other

00:02:00.899 --> 00:02:02.940
developers

00:02:02.940 --> 00:02:07.200
once we've told vagrant what
kind of server we need it will use an

00:02:07.200 --> 00:02:12.599
application called VirtualBox to create
our virtual server exactly as we

00:02:12.599 --> 00:02:14.660
described

00:02:14.660 --> 00:02:16.990
this means our application code and

00:02:16.990 --> 00:02:22.420
requirements are installed and running
on a virtual server completely isolated

00:02:22.420 --> 00:02:25.060
from our local machine

00:02:25.060 --> 00:02:29.080
this has many
benefits such as it makes it easier to

00:02:29.080 --> 00:02:33.490
share code with others regardless of
what operating system we're running our

00:02:33.490 --> 00:02:37.270
code on will have exactly the same
version of all the requirements for our

00:02:37.270 --> 00:02:42.700
app we can test our code using exactly
the same operating system and

00:02:42.700 --> 00:02:46.900
requirements that will be used on a real
production server

00:02:46.900 --> 00:02:48.580
and finally we can

00:02:48.580 --> 00:02:54.860
easily create and destroy the server as
we need making it easier to clean up

00:02:55.760 --> 00:03:01.380
The second set of tools we'll use to write
our application code to build our app

00:03:01.390 --> 00:03:05.980
we're going to use Python as the
programming language we'll use Python to

00:03:05.980 --> 00:03:11.500
write the logic for our application on
top of Python we're going to use a

00:03:11.500 --> 00:03:18.910
Python framework called django django is
a web framework for python while most

00:03:18.910 --> 00:03:22.840
websites look different on the surface
there are a number of things they all

00:03:22.840 --> 00:03:29.460
have in common for example most websites
use data from a database to render HTML

00:03:29.460 --> 00:03:33.850
that the web server can understand and
translate into something that makes

00:03:33.850 --> 00:03:40.300
sense to the human eye most websites
also display images videos and other

00:03:40.300 --> 00:03:42.680
media from the server

00:03:42.680 --> 00:03:47.050
django contains a
predefined set of code that we can use

00:03:47.050 --> 00:03:52.500
to perform some of these common actions
such as interacting with the database

00:03:52.500 --> 00:03:59.360
returning pages and images validating
user form submissions and so on

00:03:59.360 --> 00:04:04.440
This saves us an incredible amount of time
and helps us make apps in a standardized

00:04:04.450 --> 00:04:08.800
way that can be understood by other
developers

00:04:08.800 --> 00:04:10.450
On top of Django we're going

00:04:10.450 --> 00:04:16.420
to use another framework called the
Django rest framework similar to how

00:04:16.420 --> 00:04:20.950
Django provides features for building a
standard web app the Django rest

00:04:20.950 --> 00:04:27.360
framework provides a set of features for
making a standard rest api

00:04:27.580 --> 00:04:32.319
we're going to use a few development
tools to help us write and manage our

00:04:32.319 --> 00:04:39.610
code first we'll use the atom editor
which is an open source code editor made

00:04:39.610 --> 00:04:40.780
by github

00:04:40.780 --> 00:04:44.889
Atom is my favorite editor
because of its repository of plugins

00:04:44.889 --> 00:04:49.140
which are written by the huge developer
community that supports it

00:04:49.760 --> 00:04:50.319
we're also

00:04:50.319 --> 00:04:55.599
going to use git git is a version
control system it helps us track the

00:04:55.599 --> 00:05:00.789
changes that we make to our code and
finally we're going to use a Chrome

00:05:00.789 --> 00:05:06.190
browser extension called mod header
which allows us to modify the HTTP

00:05:06.190 --> 00:05:11.830
headers when we're testing our API
that's an intro to the technologies

00:05:11.830 --> 00:05:17.340
we'll be using in this course let's move
on to the next lesson

