Web Servers and APIs using C++
2h 35mIntermediate2018-08-23
Authors

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
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