Lesson 5: REST & JSON Alternatives

  Overview

Introduction

Welcome to lesson five! This lesson teaches several alternatives to REST and JSON. It is intended to provide you with an understanding of other technologies out there, but we will continue to focus on RESTful APIs that return JSON in this course. You finished your Contacts project in the previous lesson, and in this lesson you'll start a new project of your choosing.

Topics for this lesson:

  • Services and Standards
  • Types of Data
Have Feedback?

  Learning Material

Resources for this lesson are accessible to you in this repository

The following learning material may be helpful but is not required. Please reference the syllabus for more details.

  Team Assignment

Overview

Purpose: Research, learn, and share industry standards, best practices, and helpful resources.
Task: Complete the assignment.

The team activity for this lesson will consist of participating in a developer forum. Each person in this class will learn from different resources, try different things, and end up with a unique knowledge base. This forum is an opportunity for you to share industry standards and best practices regarding the technologies that we are using and that you're learning about in this lesson. To receive full credit for this assignment, you must do the following:

  Personal Assignment

Overview

Purpose: Start developing a new API.
Task: Complete the assignment.

Learning Objectives

By the end of this assignment the student will be able to do the following:

Assignment Description

For your assignment this lesson, you will create a new project of your choosing. You will have approximately four lessons in this course to complete it, similar to the last project. This project will perform CRUD operations on a MongoDB database, be published to the web, incorporate security measures, and include API documentation.

Rubric

CriteriaWeightMasteryProficientDevelopingBeginningMissing/Incomplete
100%90%78%65%0%
API Endpoints

(Graded via YouTube)
30%Meets Proficient criteria and the POST request returns the new id in the response body and a status code of 201Meets Developing criteria and performs POST. Video shows MongoDB being updatedMeets Beginning criteria and performs GET requests from MongoDBNode project has evidence of HTTP requestsGitHub link or YouTube link not submitted, or no evidence of HTTP requests
Deployment

(Graded via YouTube)
30%Meets Proficient criteria and Render CONFIG VARS are being usedMeets Developing criteria and routes for GET and POST don't contain errorsMeets Beginning criteria and routes for GET and POST are presentRender (not localhost) is being used in the video and Render url loads without errorsRender link or YouTube link not submitted, or Render errors are present
API Documentation

(Graded via YouTube)
30%Meets Proficient criteria and the "/api-docs" page (or Apollo server link) can test the endpointsMeets Developing criteria and the route: "/api-docs" (or Apollo server link) is accessibleMeets Beginning criteria and the following routes are present in the documentation: GET all, GET by id, PUT, POST, and DELETEExidence of API documentation is present in project (either a swagger.json file or Apollo server)YouTube link not submitted or no API documentation present (no swagger.json for swagger or Apollo server link for GraphQL)
Architecture

(Graded via GitHub)
10%Meets Proficient criteria plus includes a .rest file with routes for localhost and RenderMeets Developing criteria plus each route calls a function imported from a controllerMeets Beginning criteria plus server connects to routes in project "routes" folder using only a single line of codeServer file is present in root folder (server.js, index.js or app.js) to run the Node projectRender link not submitted