Lesson Weekend

In this course section, we'll create our own Rails API using RESTful principles. Rails 5 includes built-in functionality to quickly scaffold an API-only application. Here are the topics we'll explore:

  • Building an API that includes full CRUD functionality and nested routes
  • Successfully returning JSON objects via Postman and cURL
  • Returning headers with the correct HTTP status code
  • Testing APIs with RSpec request specs
  • Documenting your API endpoints
  • Handling exceptions when an API call fails

In this section, you'll also be expected to do further exploration beyond the curriculum. Once again, this is to prepare you for solving problems in a real world dev job. Here is some of the further exploration you can try:

  • Authenticating API users with a stateless token
  • Versioning your API
  • Using a serializer to normalize JSON data
  • Creating API endpoints with custom routes

With this being the last course section of new material for your back-end language, one of our main goals for this section is to foster growth in your ability to independently troubleshoot. This means that the further exploration will be exactly that: exploration. Once you begin active development in the industry, there will not always be step-by-step guides for exact implementation of concepts that fit neatly into your projects. It is critical that you have the opportunity to get experience in diving into documentation, modifying code snippets you find online to fit your needs, looking up error messages you receive, and solving problems with patience and trial-and-error.

In this section, we will reaffirm a point from the student handbook:

Our best advice is to not think of Epicodus as a place to learn Ruby, React, C#, JavaScript, or some other language or tool. Instead, think of it as a place to learn how to learn.

Although teachers may be willing to talk broadly about these further exploration concepts with you, do not expect any teacher guidance on these principles. It may be frustrating in the moment to feel like you are on your own in finding these answers, but it's the best preparation we can give you for the world waiting for you after Epicodus. This course section is an opportunity to differentiate yourself through your unique implementations of these concepts.

Independent Project Objectives


At the end of this section, you will complete an independent project. Your code will be reviewed for the following objectives:

  • Application includes CRUD functionality and successfully returns responses to API calls.
  • README thoroughly describes all endpoints along with parameters that can be used.
  • Application includes a best effort at implementing at least one of the further exploration objectives: authentication, versioning, pagination, Swagger documentation, or CORS.
  • README includes specific documentation on further exploration: what it is and how to use it.
  • Project is in a polished, portfolio-quality state.
  • The prompt’s required functionality and baseline project requirements are in place by the deadline.

Lesson 1 of 19
Last updated August 7, 2022