Web Servers and APIs using C++

Web Servers and APIs using C++

2h 35mIntermediate2018-08-23

Authors

Troy Miles

Troy Miles

Award-winning Software Engineer, Speaker, and Author

Course details

C++ has re-emerged as a go-to language for developing high-performance websites and web applications. C++ compiles to machine code, making it faster to start up and execute. For users, this means less time waiting for a site to render. This course teaches developers how to build a website powered by a MongoDB database and deploy it with a Heroku cloud server, all with C++. Instructor Troy Miles—a senior software developer—shows how to build and deliver HTML webpages; upload, download, and parse JSON data; make RESTful API calls; and even do real-time communication using WebSockets. Along the way, he shows how to resolve one of the main challenges of C++ web development—a complex toolchain that must be synced in development and production—using Docker containers.
Learning objectives
Working with Crow, the C++ micro web framework
Deploying containers to Heroku
Building websites and webpages
Accessing data from a database
Accessing data via RESTful APIs
Creating API endpoints
Running WebSockets on Heroku

Skills covered

C++Programming LanguagesOpen SourceSoftware DevelopmentOne-Off

Concepts

0. Introduction

  • 01 - Why use C++ to make a website
  • 02 - What you should know

1. Installing Our Tools

  • 03 - Installing Docker
  • 04 - Installing Atom
  • 05 - Creating a Dockerfile
  • 06 - Running a Dockerfile
  • 07 - Adding a volume
  • 08 - Building Crow
  • 09 - Serving the example
  • 10 - Challenge - Modify the example page
  • 11 - Solution - Modify the example page

2. Deploying to Heroku

  • 12 - Creating a Heroku account
  • 13 - Installing the Heroku CLI
  • 14 - Deploying our container to Heroku
  • 15 - Saving our container to Docker Hub

3. Building Websites

  • 16 - Creating HTML pages
  • 17 - Serving HTML pages
  • 18 - Serving static content
  • 19 - Challenge - Create a new webpage
  • 20 - Solution - Create a new webpage

4. Data Access

  • 21 - Creating an mLab account
  • 22 - Uploading JSON data
  • 23 - Adding the MongoDB C++ drivers
  • 24 - Querying Mongo data
  • 25 - Adding dynamic data to a page
  • 26 - Challenge - Create a webpage with data
  • 27 - Solution - Create a webpage with data

5. RESTful APIs

  • 28 - Creating an endpoint
  • 29 - Parsing the path
  • 30 - Reading the query string
  • 31 - Converting to JSON data
  • 32 - Challenge - Create an endpoint
  • 33 - Solution - Create an endpoint

6. WebSockets and Crow

  • 34 - Reviewing the JavaScript client code
  • 35 - Creating the C++ server code
  • 36 - Running WebSocket on Heroku

Conclusion

  • 37 - Next steps
80,000 Toman