Let's go over some of the technologies were going to be using in this course
the technologies were going to use to build our REST API are VirtualBox
vagrant Python Django the Django rest framework atom editor git and the mod
header chrome extension
all of these will work together to produce our
working REST API
to better explain how they fit together I've divided them into
three categories
category one development server
number two
application code
and number three tools
as we write our code we'll want to test
it on our machine many developers run code directly on their local operating
system this may be the quickest way to get going but it can create a number of
problems when working on real-world apps such as making collaboration with other
developers extremely difficult problems when trying to run our app on different
operating systems such as Windows and Mac issues with our development app
conflicting with applications we have installed on our machine over time it
can clog up our machine with dev tools and packages and finally we're running
our code on a completely different operating system then we'll be using on
the production server that's why professional programmers always run
their code on a local development server to isolate their code from their local
desktop it's best practice so we'll be doing it here in this course using the
following tools
the first tool we'll use is vagrant vagrant allows us to describe
what kind of server we need for our app
we can then save the config as a vagrant
file which allows us to easily reproduce and share the same server with other
developers
once we've told vagrant what kind of server we need it will use an
application called VirtualBox to create our virtual server exactly as we
described
this means our application code and
requirements are installed and running on a virtual server completely isolated
from our local machine
this has many benefits such as it makes it easier to
share code with others regardless of what operating system we're running our
code on will have exactly the same version of all the requirements for our
app we can test our code using exactly the same operating system and
requirements that will be used on a real production server
and finally we can
easily create and destroy the server as we need making it easier to clean up
The second set of tools we'll use to write our application code to build our app
we're going to use Python as the programming language we'll use Python to
write the logic for our application on top of Python we're going to use a
Python framework called django django is a web framework for python while most
websites look different on the surface there are a number of things they all
have in common for example most websites use data from a database to render HTML
that the web server can understand and translate into something that makes
sense to the human eye most websites also display images videos and other
media from the server
django contains a predefined set of code that we can use
to perform some of these common actions such as interacting with the database
returning pages and images validating user form submissions and so on
This saves us an incredible amount of time and helps us make apps in a standardized
way that can be understood by other developers
On top of Django we're going
to use another framework called the Django rest framework similar to how
Django provides features for building a standard web app the Django rest
framework provides a set of features for making a standard rest api
we're going to use a few development tools to help us write and manage our
code first we'll use the atom editor which is an open source code editor made
by github
Atom is my favorite editor because of its repository of plugins
which are written by the huge developer community that supports it
we're also
going to use git git is a version control system it helps us track the
changes that we make to our code and finally we're going to use a Chrome
browser extension called mod header which allows us to modify the HTTP
headers when we're testing our API that's an intro to the technologies
we'll be using in this course let's move on to the next lesson