-
Notifications
You must be signed in to change notification settings - Fork 0
Week 8 Ready For Review #43
Copy link
Copy link
Open
Labels
checkpointUse for Project Checkpoints. Include acceptance evidence (tests, screenshots) when used.Use for Project Checkpoints. Include acceptance evidence (tests, screenshots) when used.documentationImprovements or additions to documentationImprovements or additions to documentationpriority:P1-highHigh importance; schedule next.High importance; schedule next.project:mvpUse for all issues/PRs that belong to the MVP release. Will auto-add labeled items to the board.Use for all issues/PRs that belong to the MVP release. Will auto-add labeled items to the board.status:needs-reviewReady for code review or product approval.Ready for code review or product approval.status:triageNewly filed or uncategorized. Needs initial review, labeling, and priority assignment.Newly filed or uncategorized. Needs initial review, labeling, and priority assignment.
Metadata
Metadata
Assignees
Labels
checkpointUse for Project Checkpoints. Include acceptance evidence (tests, screenshots) when used.Use for Project Checkpoints. Include acceptance evidence (tests, screenshots) when used.documentationImprovements or additions to documentationImprovements or additions to documentationpriority:P1-highHigh importance; schedule next.High importance; schedule next.project:mvpUse for all issues/PRs that belong to the MVP release. Will auto-add labeled items to the board.Use for all issues/PRs that belong to the MVP release. Will auto-add labeled items to the board.status:needs-reviewReady for code review or product approval.Ready for code review or product approval.status:triageNewly filed or uncategorized. Needs initial review, labeling, and priority assignment.Newly filed or uncategorized. Needs initial review, labeling, and priority assignment.
Projects
Status
In Progress
Status
In Progress
@pawaitemadisoncollege week 8 is complete
Scope per rubric / plan
Evidence (links, screenshots)
/docs/screenshots/Week8-RestfulAPI_Tests_Passing-QuoteServiceTest.png:
Reflection
Key Learning Points / Takeaways
This week, I deepened my understanding of how to consume and deserialize external REST APIs in Java using HttpClient and Jackson. I learned how JSON structure dictates the POJO mapping (e.g., array vs. object roots) and how to generate and adapt POJOs using RoboPOJOGenerator. I also learned how to design a resilient service layer—adding caching, configuration-based properties, and fallback behavior for failed API calls. Another big takeaway was how to dynamically build URIs with optional parameters (author and tag filters) while keeping the logic clean and flexible for future user-controlled settings.
What Challenged Me
The biggest challenge was troubleshooting SSL/TLS handshake errors when switching from HTTP to HTTPS. This turned out not to be a coding issue but rather a local certificate validation problem caused by an expired or intercepted certificate chain on my machine. Debugging that taught me more about how Java and Windows handle HTTPS validation, truststores, and certificates—definitely outside the usual scope of web app development but valuable knowledge nonetheless.
Problems Solved and Resources Used
I solved several practical problems:
Replaced hard-coded values with configuration properties in application.properties to make the service more maintainable and compliant to class standards.
Implemented a simple caching mechanism and structured log output to improve performance and traceability. I had issues with maxing out calls to the API. I started using Zen quotes and swapped it out for "Quotables API", because they were trying to force me to pay for it.
Identified the root cause of the HTTPS error and implemented a temporary safe fallback to HTTP with a configuration flag and a TODO marker for future TLS remediation.
Resources used:
included the Quotable API documentation, Jackson and HttpClient reference material, IntelliJ’s built-in HTTP client for testing endpoints, and several community discussions/documentation pages on Java’s SSL certificate validation.
Approval checklist