Learn about useful tools for following the course Building APIs Using Hapi in Node.js
- [Instructor] During the course, I'll be working with several tools. I'm going to spend a few minutes going over these tools and the reason that I think they're great. Docker is a relatively new container-based system. It makes it possible to create very small and powerful virtual machines on your system. Native clients are now available for Windows 10 and OSX and older versions of Windows can use a Docker engine supporting the functionality. It's easy to define and build containers for any purpose, from running databases and servers, to creating a sandbox environment, such as the one we're using here.
In fact, Docker containers can be rebuilt whenever a GetHub repository changes to keep it up-to-date. HTTPie is a command-blind utility for working with APIs. You may be familiar with Curl and comfortable using it, but I much prefer HTTPie for API interaction. Curl is very powerful, but here are some advantages HTTPie provides. Well-formatted output of JSON responses, command line flags for common headers, such as content type, easy declaration of query parameters, form post bodies and JSON payloads and a much more natural and intuitive interface.
Choosing and IDE is always a challenge, especially when moving between programming languages. I really like the new Visual Studio Code. The tool is free and an open source, it's available for OSX and Windows, plugins for many languages and functions are available. The syntax highlighting is very powerful, as is the auto-completion of items within the code. The interface is really slick and fun to work with. Finally, Chrome. I know you probably have a browser preference and want to stick with that, but for this course, I encourage you to use the Chrome browser.
The main reason for using it is that the developer tools are top notch, making it a great choice for web development. It behaves consistently on all platforms and it has a powerful plugin architecture, which can be leveraged for a wide variety of functions.
- Setting up the development environment
- Consuming an API using HTTPie
- Inspecting Mongo data
- Updating the server for MongoDB read functionality
- Setting up application endpoints
- Implementing user endpoints, progress endpoints, and promises