Skip to content

New Lesson: Basic REST API#29090

Open
Lofty-Brambles wants to merge 24 commits intoTheOdinProject:mainfrom
Lofty-Brambles:feat/basic_rest_api
Open

New Lesson: Basic REST API#29090
Lofty-Brambles wants to merge 24 commits intoTheOdinProject:mainfrom
Lofty-Brambles:feat/basic_rest_api

Conversation

@Lofty-Brambles
Copy link
Copy Markdown
Contributor

@Lofty-Brambles Lofty-Brambles commented Nov 17, 2024

Because

New lesson on Basic REST APIs. Part of Milestone #2 of the Node Revamp.

This PR

  • Adds a fresh lesson as a part of the Node Revamp Milestone #2.

Issue

Closes #28832

Additional Information

The Markdown Preview tool does not render the nested list under assignments and tables properly. The style for those was copied from other, currently active lessons.

Pull Request Requirements

  • I have thoroughly read and understand The Odin Project curriculum contributing guide
  • The title of this PR follows the location of change: brief description of change format, e.g. Intro to HTML and CSS lesson: Fix link text
  • The Because section summarizes the reason for this PR
  • The This PR section has a bullet point list describing the changes in this PR
  • If this PR addresses an open issue, it is linked in the Issue section
  • If any lesson files are included in this PR, they have been previewed with the Markdown preview tool to ensure it is formatted correctly
  • If any lesson files are included in this PR, they follow the Layout Style Guide

@github-actions github-actions bot added the Content: NodeJS Involves the NodeJS course label Nov 17, 2024
Copy link
Copy Markdown
Contributor

@Maddily Maddily left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work overall. I suggested a few minor changes to improve the flow and clarity.

Comment thread nodeJS/apis/RESTful_APIs.md Outdated
Comment thread nodeJS/apis/RESTful_APIs.md Outdated
Copy link
Copy Markdown
Contributor

@HenriqueHeron HenriqueHeron left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Went through the article and it's looking great. I've made a few corrections and grammar improvement suggestions.

Comment thread nodeJS/apis/RESTful_APIs.md Outdated
Comment thread nodeJS/apis/RESTful_APIs.md Outdated
Comment thread nodeJS/apis/RESTful_APIs.md Outdated
Comment thread nodeJS/apis/RESTful_APIs.md Outdated
Comment thread nodeJS/apis/RESTful_APIs.md Outdated
Copy link
Copy Markdown
Contributor

@Asartea Asartea left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

General comment: this lesson uses the term URI 4 times, and URL 9 times. Is there (for the content of this lesson) a meaningful difference expressed with that? Otherwise it should be probably use one of those consistently.

Excluding that and a few minor nits I think overall it looks great

Comment thread nodeJS/apis/RESTful_APIs.md Outdated
Comment thread nodeJS/apis/RESTful_APIs.md Outdated
Comment thread nodeJS/apis/RESTful_APIs.md Outdated
Comment thread nodeJS/apis/RESTful_APIs.md
Lofty-Brambles and others added 4 commits November 18, 2024 19:00
Co-authored-by: Asartea <76259120+Asartea@users.noreply.github.com>
Co-authored-by: Mayada <115709272+Maddily@users.noreply.github.com>
Co-authored-by: Henrique Heron <44820991+autotelico@users.noreply.github.com>
Co-authored-by: Mayada <115709272+Maddily@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

@Maddily Maddily left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Made a few other small tweaks for readability.

Comment thread nodeJS/apis/RESTful_APIs.md Outdated
Comment thread nodeJS/apis/RESTful_APIs.md Outdated
Comment thread nodeJS/apis/RESTful_APIs.md Outdated
Comment thread nodeJS/apis/RESTful_APIs.md Outdated
Comment thread nodeJS/apis/RESTful_APIs.md Outdated
Comment thread nodeJS/apis/RESTful_APIs.md Outdated
Comment thread nodeJS/apis/RESTful_APIs.md Outdated
Comment thread nodeJS/apis/RESTful_APIs.md Outdated
Comment thread nodeJS/apis/RESTful_APIs.md Outdated
Comment thread nodeJS/apis/RESTful_APIs.md Outdated
Comment thread nodeJS/apis/RESTful_APIs.md Outdated
Co-authored-by: Mayada <115709272+Maddily@users.noreply.github.com>
Comment thread nodeJS/apis/RESTful_APIs.md
Comment thread nodeJS/apis/RESTful_APIs.md Outdated
Comment thread nodeJS/apis/RESTful_APIs.md
@01zulfi 01zulfi added the Project Node Revamp Issues/PRs related to the Node Revamp project label Dec 11, 2024
@Lofty-Brambles Lofty-Brambles requested a review from 01zulfi January 3, 2025 17:35
@Lofty-Brambles
Copy link
Copy Markdown
Contributor Author

Apologies for the delay. Completely forgot about it.

Copy link
Copy Markdown
Member

@01zulfi 01zulfi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good to me 🚀

Copy link
Copy Markdown
Contributor

@mao-sz mao-sz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: For consistency with the revamped lessons, instead of "ExpressJS", it should be referred to simply as "Express".

Occurs in text on lines 98, 109 and 110.

@Lofty-Brambles
Copy link
Copy Markdown
Contributor Author

@MaoShizhong @01zulfi - if it's all right, this should be good to merge?

@01zulfi
Copy link
Copy Markdown
Member

01zulfi commented Mar 27, 2025

@Lofty-Brambles Yea, everything looks good. I'll merge all the PRs related to the milestone at a later date, most likely together


- [What is CRUD?](https://www.codecademy.com/article/what-is-crud)
- [What are the four main HTTP methods, and how are they used?](#crud-and-http-methods)
- [Which HTTP method corresponds to each action in CRUD (Create, Read, Update, Delete)?](https://stackoverflow.blog/2020/03/02/best-practices-for-rest-api-design/#h-use-nouns-instead-of-verbs-in-endpoint-paths)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given the KC question being asked, linking to the appropriate lesson section feels better than linking to an external site.

Suggested change
- [Which HTTP method corresponds to each action in CRUD (Create, Read, Update, Delete)?](https://stackoverflow.blog/2020/03/02/best-practices-for-rest-api-design/#h-use-nouns-instead-of-verbs-in-endpoint-paths)
- [Which HTTP method corresponds to each action in CRUD (Create, Read, Update, Delete)?](#crud-and-http-methods)

@mao-sz
Copy link
Copy Markdown
Contributor

mao-sz commented May 11, 2025

I also wonder if this lesson is an appropriate point to drop a quick link to Postman, perhaps at the end of the RESTful APIs section, e.g.

Since JSON is sent in response, it also allows us to use software like Postman to send requests to our API and display the response, all without needing to create a website to do so.

Then it can be re-linked as a reminder in the JWT project (TBD).

I was originally going to use it in the JWT lesson but since we're streamlining the "tutorial", I can't find as good a place for an introductory link there and this lesson seems very appropriate IMO. The JWT lesson feels like a better place to reference Postman as if it's already been introduced.

Thoughts @01zulfi @Lofty-Brambles ?

@mao-sz
Copy link
Copy Markdown
Contributor

mao-sz commented Aug 12, 2025

Just realised that Postman is already first introduced in the Routes lesson, but I still think a quick re-mention of Postman here might be valuable. Thoughts?

Comment on lines +125 to +129
### Additional resources

This section contains helpful links to related content. It isn't required, so consider it supplemental.

- [HTTP Request/Response Basics](http://justahelp.blogspot.com/2013/09/http-requestresponse-basics.html) from Pralay Roy goes into further detail about their lifecycle and anatomy with best practices.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Lofty-Brambles not sure you're aware but one of the big things the team is going through with the whole curriculum is re-evaluating additional resources and the purpose of the AR section.

Rereading this lesson, I'm wondering how you feel about this AR you've added. Do you feel it's important enough to the lesson to need mentioning on top of everything else covered? If so, is it something that can be integrated into the lesson itself in some way as opposed to as an AR? Or is there a good reason it should not be dropped but must still be separate from the lesson proper?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Content: NodeJS Involves the NodeJS course Project Node Revamp Issues/PRs related to the Node Revamp project

Projects

None yet

Development

Successfully merging this pull request may close these issues.

New Lesson: RESTful APIs

6 participants