Product Catalog API you own this product

'); $(document.body).append('
loading reading lists ...
'); function adjustReadingListIcon(isInReadingList){ $readingListToggle.toggleClass("fa-plus", !isInReadingList); $readingListToggle.toggleClass("fa-check", isInReadingList); var tooltipMessage = isInReadingList ? "edit in reading lists" : "add to reading list"; $readingListToggle.attr("title", tooltipMessage); $readingListToggle.attr("data-original-title", tooltipMessage); } $.ajax({ url: "/readingList/isInReadingList", data: { productId: 2443 } }).done(function (data) { adjustReadingListIcon(data && data.hasProductInReadingList); }).catch(function(e){ console.log(e); adjustReadingListIcon(false); }); $readingListToggle.on("click", function(){ if(codePromise == null){ showToast() } loadCode().then(function(store){ store.requestReadingListSpecificationForProduct({ id: window.readingListsServerVars.externalId, manningId: window.readingListsServerVars.productId, title: window.readingListsServerVars.title }); ReadingLists.ReactDOM.render( ReadingLists.React.createElement(ReadingLists.ManningOnlineReadingListModal, { store: store, }), document.getElementById("reading-lists-modal") ); }).catch(function(e){ console.log("Error loading code reading list code"); }); }); var codePromise var readingListStore function loadCode(){ if(codePromise) { return codePromise } return codePromise = new Promise(function (resolve, reject){ $.getScript(window.readingListsServerVars.libraryLocation).done(function(){ hideToast() readingListStore = new ReadingLists.ReadingListStore( new ReadingLists.ReadingListProvider( new ReadingLists.ReadingListWebProvider( ReadingLists.SourceApp.marketplace, getDeploymentType() ) ) ); readingListStore.onReadingListChange(handleChange); readingListStore.onReadingListModalChange(handleChange); resolve(readingListStore); }).catch(function(){ hideToast(); console.log("Error downloading reading lists source"); $readingListToggle.css("display", "none"); reject(); }); }); } function handleChange(){ if(readingListStore != null) { adjustReadingListIcon(readingListStore.isInAtLeastOneReadingList({ id: window.readingListsServerVars.externalId, manningId: window.readingListsServerVars.productId })); } } var $readingListToast = $("#reading-list-toast"); function showToast(){ $readingListToast.css("display", "flex"); setTimeout(function(){ $readingListToast.addClass("shown"); }, 16); } function hideToast(){ $readingListToast.removeClass("shown"); setTimeout(function(){ $readingListToast.css("display", "none"); }, 150); } function getDeploymentType(){ switch(window.readingListsServerVars.deploymentType){ case "development": case "test": return ReadingLists.DeploymentType.dev; case "qa": return ReadingLists.DeploymentType.qa; case "production": return ReadingLists.DeploymentType.prod; case "docker": return ReadingLists.DeploymentType.docker; default: console.error("Unknown deployment environment, defaulting to production"); return ReadingLists.DeploymentType.prod; } } }); } });
prerequisites
web services basics • familiarity with RESTful and REST services • basics of microservices concepts and applications • basics of APIs and interfaces, payloads, JSON, and XML • Java programming skills
skills learned
design a product catalog API by following a design-first approach and using OpenAPI Spec • master the basics of OpenAPI Specification, YAML syntax, schema definitions • generate helpful API documentation
Harihara Subramanian
1 week &middot 6-8 hours per week &middot INTERMEDIATE

pro $24.99 per month

  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose one free eBook per month to keep
  • exclusive 50% discount on all purchases

lite $19.99 per month

  • access to all Manning books, including MEAPs!

team

5, 10 or 20 seats+ for your team - learn more


Look inside

You’re a software developer for Greengrocer, a chain of supermarkets that’s revamping its monolithic software to better handle its growing customer base. Using a design-first approach and the OpenAPI Specification, your task is to design a product catalog API to help employees track inventory. You’ll write API definitions through YAML description files and generate code and documentation for the API. When you’re done, you’ll have firsthand experience with OpenAPI Specification, YAML syntax, and schema definitions, and you’ll have improved the developer experience with good documentation.

This project is designed for learning purposes and is not a complete, production-ready application or solution.

project author

Harihara Subramanian J

With a proven track record in software development, software architecture principles, and implementations, Hari Subramanian has been working with software development and various software architecture concepts since 1999. He’s designed and developed over 20 microservice applications adhering to API design principles and API design patterns and has an affinity for patterns and anti-patterns.

Cloud native computing, cloud architecture, legacy product transformations, cloud migration strategies, and cloud design patterns are his current areas of focus. He’s also an active contributor to various forums on different technologies and has co-authored the books Architecture Patterns and Hands-on RESTful API Design Patterns and Best Practices.

prerequisites

This liveProject is for learners who want to gain practical experience with RESTful APIs, microservices, design principles, and API design patterns. To begin these liveProjects you’ll need to be familiar with the following:

TOOLS
  • Any Java IDE
  • JDK 8 or higher
TECHNIQUES
  • API Design-First
  • Open API Spec
  • SLA and payloads
  • JSON
  • XML

features

Self-paced
You choose the schedule and decide how much time to invest as you build your project.
Project roadmap
Each project is divided into several achievable steps.
Get Help
While within the liveProject platform, get help from other participants and our expert mentors.
Compare with others
For each step, compare your deliverable to the solutions by the author and other participants.
book resources
Get full access to select books for 90 days. Permanent access to excerpts from Manning products are also included, as well as references to other resources.

choose your plan

team

monthly
annual
$49.99
$399.99
only $33.33 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free product every time you renew
  • choose twelve free products per year
  • exclusive 50% discount on all purchases
  • Product Catalog API project for free
RECENTLY VIEWED