Get Help Open Postman

OpenAPI - Basics

Learn how to design API schemas with an API-first mindset using the OpenAPI specification

rate limit

Code not recognized.

About this module

In this module, you will learn how to:

  • Design an API effectively in Postman using the OpenAPI Specification
  • Define reusable components for consistency in the schema
  • Generate and customize collections based on the API definition

Chapters1 hour

  • Basics
  • Get started with OpenAPI
  • Wrapping up
  • Resources
  • Recap

About this module

In this module, you will learn how to:

  • Design an API effectively in Postman using the OpenAPI Specification
  • Define reusable components for consistency in the schema
  • Generate and customize collections based on the API definition

Chapters1 hour

  • Basics
  • Get started with OpenAPI
  • Wrapping up
  • Resources
  • Recap
<> document.addEventListener('DOMContentLoaded', function () { try { var groups = window.skilljarUserStudentGroups; // Validate Skilljar group array if (!Array.isArray(groups) || groups.length === 0) { return; // No groups → show no logo } var suffix = '-portal'; var portalGroups = []; // Collect all groups whose name ends with "-portal" (case-insensitive) groups.forEach(function (g) { if (!g || !g.name) return; var nameLower = String(g.name).trim().toLowerCase(); if (nameLower.endsWith(suffix)) { portalGroups.push(g); } }); // No portal groups → show no logo if (portalGroups.length === 0) { return; } // Allowlist of supported portal slugs var allowedCompanies = ['postman', 'acme', 'contoso']; // Extend this list as new portal customers are added // Insert a logo for each portal group found portalGroups.forEach(function (pg) { var nameLower = pg.name.trim().toLowerCase(); // Strip "-portal" suffix var baseName = nameLower.slice(0, nameLower.length - suffix.length); // Normalize slug var slug = baseName .trim() .replace(/\s+/g, '-') // spaces → hyphens .replace(/[^a-z0-9-]/g, ''); // remove invalid chars if (!slug || allowedCompanies.indexOf(slug) === -1) { return; } insertLogo(slug); }); // ----------------------------------------- // Insert Logo Helper // (NO default fallback — slug must match) // ----------------------------------------- function insertLogo(slug) { var container = document.getElementById('customer-portal-logo'); if (!container) return; var elem = document.createElement('img'); elem.setAttribute('alt', 'Logo'); // Map slug → logo asset (examples) switch (slug) { case 'acme': elem.setAttribute('src', 'https://example.com/logos/acme-portal-logo.png'); elem.setAttribute('width', '375'); elem.setAttribute('height', '80'); break; case 'contoso': elem.setAttribute('src', 'https://example.com/logos/contoso-portal-logo.png'); elem.setAttribute('width', '349'); elem.setAttribute('height', '65'); break; case 'postman': elem.setAttribute('src', 'https://everpath-course-content.s3-accelerate.amazonaws.com/instructor%2Fc3jrngphf22ys6kxwfiw0g9kk%2Fpublic%2F1672880408%2Fpostman-orange-logo.1672880408868.png'); elem.setAttribute('width', '370'); break; default: return; // Do nothing — no logo } container.appendChild(elem); } } catch (e) { if (window.console && console.warn) { console.warn('Portal logo init failed', e); } } }); <>