<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Postman</title>
    <description>The latest articles on DEV Community by Postman (@postman).</description>
    <link>https://dev.to/postman</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F5035%2F6b8f298c-c09b-48a5-9f70-a811376e63af.png</url>
      <title>DEV Community: Postman</title>
      <link>https://dev.to/postman</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/postman"/>
    <language>en</language>
    <item>
      <title>Stop Exposing Secrets! Secure Your APIs in Postman Like a Pro</title>
      <dc:creator>Bello Gbadebo</dc:creator>
      <pubDate>Fri, 07 Mar 2025 10:07:58 +0000</pubDate>
      <link>https://dev.to/postman/stop-exposing-secrets-secure-your-apis-in-postman-like-a-pro-13c3</link>
      <guid>https://dev.to/postman/stop-exposing-secrets-secure-your-apis-in-postman-like-a-pro-13c3</guid>
      <description>&lt;p&gt;API security is crucial, as it directly impacts your business's success and safety. How well you secure your APIs can make or mar your product, and it is of utmost importance to spend time thinking about security.&lt;/p&gt;

&lt;p&gt;I have seen developers work in Postman without properly securing their credentials, often leaving API keys exposed in shared environments or logging sensitive data in the console. For example, some developers unknowingly expose credentials when they make their workspaces public, allowing anyone to access sensitive API keys and tokens that are not properly stored.&lt;/p&gt;

&lt;p&gt;In this post, I want to share some tips on how you can protect your data and API in Postman.&lt;/p&gt;

&lt;h2&gt;
  
  
  General Tips for Securing Your APIs in Postman
&lt;/h2&gt;

&lt;p&gt;When working with APIs in Postman, taking proactive security measures is essential to prevent data leaks and unauthorized access. Implementing best practices ensures your credentials, tokens, and sensitive data remain protected. Below are some helpful tips on securely working in Postman.&lt;/p&gt;

&lt;h3&gt;
  
  
  1) The secret scanner is your friend
&lt;/h3&gt;

&lt;p&gt;The Postman secret scanner is every developer's knight. It constantly scans your public workspaces and documentation for any exposed secrets. It checks your variables and environments, schemas, etc for exposed secrets and notifies all Team and Workspace admins via emails and in-app notifications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs3u3ggh2ukx8qt6wayx2.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs3u3ggh2ukx8qt6wayx2.jpeg" alt="image|690x190" width="800" height="220"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Admins are given a link to view all exposed secrets in a dashboard and an option to immediately replace them with a placeholder using a single button click. This helps mitigate security risks faster.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffm2ku6dlxj3ebeptccg1.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffm2ku6dlxj3ebeptccg1.jpeg" alt="image|690x400" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you do not replace exposed secrets in a timeframe specified in the email, the secret scanner will automatically replace this data with a placeholder for you. For example, authorization secrets can be replaced with &lt;code&gt;{{vault:authorization-secret}}&lt;/code&gt;, or &lt;code&gt;&amp;lt;AUTHORIZATION_SECRET&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro tip 1 :&lt;/strong&gt; Whenever you want to show an example of some sensitive data, always use placeholder data before making your Workspace public. Maintain a private fork of your collection that you can continue to work in even after making your base collection public.&lt;/p&gt;

&lt;p&gt;There’s a lot more you can do with the secret scanner in Postman. You can mark alerts as ‘false positives’, ‘won’t fix’, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro tip 2:&lt;/strong&gt; Don’t ever ignore the secret scanner notifications. While there may be false positives, always check to ensure you’re not exposing anything and staying safe.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://learning.postman.com/docs/administration/managing-your-team/secret-scanner/" rel="noopener noreferrer"&gt;Learn more about the secret scanner here&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2) Avoid secret keys in test scripts, headers, params, etc
&lt;/h3&gt;

&lt;p&gt;When working with test scripts, depending on your workflow, some developers often prefer to make HTTP calls from pre-request scripts. Some HTTP calls require auth credentials, and these auth credentials can be easily exposed if you’re logging data to the console, passing data to a template for visualization, etc.&lt;/p&gt;

&lt;p&gt;If you need to use sensitive data in your pm scripts, always first store them in a vault, environment, or collection variable, then programmatically access the data from storage.&lt;/p&gt;

&lt;p&gt;In some cases, Postman actively checks for any sensitive data in your scripts and truncates them before logging to avoid being exposed.&lt;/p&gt;

&lt;p&gt;Similarly, you should also be very careful when adding request headers, query/path parameters, etc. These are places where we’ve observed a lot of secrets being exposed. Our variable helpers make it easy to store data from those places into the vault or collection/environment variables. Simply highlight the value, and you will see a pop up that helps you store the data more securely.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmy8fdalj0owdnxfyvhs4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmy8fdalj0owdnxfyvhs4.png" alt="image|690x400" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here’s a list of places to take note of when making a workspace public:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Request header&lt;/li&gt;
&lt;li&gt;Collection/Environment/Global Variables&lt;/li&gt;
&lt;li&gt;Query and Path Parameters&lt;/li&gt;
&lt;li&gt;Authorization helpers (API Key, Basic, OAuth, etc)&lt;/li&gt;
&lt;li&gt;Pre-request and Post-response scripts&lt;/li&gt;
&lt;li&gt;Request body&lt;/li&gt;
&lt;li&gt;URL bar&lt;/li&gt;
&lt;li&gt;Postman Console&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3) Keep your credentials local with Postman Vault
&lt;/h3&gt;

&lt;p&gt;Some users worry about storing their credentials in Postman environments and variables because it could potentially sync with Postman cloud depending on how it is stored. While the Postman cloud is safe and secure, we always encourage everyone to store their API secrets in the Postman Vault.&lt;/p&gt;

&lt;p&gt;Postman Vault is a local encrypted storage that only you can access. Data stored in the Postman vault are not synced with the Postman cloud and can only be accessed using a vault key. Your vault key can be stored in your system’s password manager or securely elsewhere.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foc31t2s1otzxscuqjker.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foc31t2s1otzxscuqjker.png" alt="image|690x216" width="800" height="250"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can limit vault secrets to specific API domains, and link them to external password managers like Hashicorp, Azure Vault, 1Password, etc if you intend to share credentials with your team. Vault credentials can be programmatically accessed in postman scripts similar to how you would access environments, and collection variables.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro tip:&lt;/strong&gt; When working with authorization helpers in Postman. Always use the Postman Vault.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://learning.postman.com/docs/sending-requests/postman-vault/postman-vault-secrets/" rel="noopener noreferrer"&gt;Learn more about Postman Vaults&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4) Help your API consumers stay secure with Guided Auths
&lt;/h3&gt;

&lt;p&gt;Guided Auth helps you onboard API consumers to your public APIs faster and more efficiently. When you set up Guided Auths for your public APIs in Postman, your API consumers get a step by step guide on how they can make their first successful API call as soon as they start typing your domain name in the URL bar.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9s8cjbcgp83kobsno2be.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9s8cjbcgp83kobsno2be.png" alt="image|690x148" width="800" height="171"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They can easily set up different kinds of authentication(OAuth 2.0, Client Credentials, PKCE, etc) depending on how your guided auth is configured.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://learning.postman.com/docs/publishing-your-api/setting-up-authentication-for-public-apis/" rel="noopener noreferrer"&gt;Learn how to setup Guided Auths here&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once you have guided auths setup, you can help your API consumers stay secure by choosing to store their credentials after a guided authentication step in Postman Vault. Vault secrets added using Guided Auth are inside double curly braces (&lt;code&gt;{{ }}&lt;/code&gt;). The prefix &lt;code&gt;vault:&lt;/code&gt; is appended to the vault secret's name, and a suffix is automatically appended with the authentication type.&lt;br&gt;
e.g &lt;code&gt;{{vault:postman-api-key:value}}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fughzpnl5dej0rmqt6a8y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fughzpnl5dej0rmqt6a8y.png" alt="image|690x162" width="800" height="188"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5) Current Values vs Initial Values
&lt;/h3&gt;

&lt;p&gt;When using variables in Postman, it’s important to understand the difference between Initial Values and Current Values.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Initial Values are synced to the Postman cloud. If you share your collections, your variables become visible to your team and anyone who has access to that workspace.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Current Values are only stored locally on your machine and are not shared with others. This makes them ideal for storing sensitive API keys, tokens, or credentials.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pro tip: Always ensure that sensitive data is stored as a Current Value to prevent accidental exposure. Use Initial Values to show examples of what the variable value could look like.&lt;/p&gt;

&lt;h3&gt;
  
  
  6) Authorization helpers are there to help
&lt;/h3&gt;

&lt;p&gt;Postman provides authorization helpers that let you handle authentication securely without manually adding tokens or credentials in your request headers.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instead of manually copying access tokens, use the OAuth 2.0 helper to automatically fetch and refresh tokens.&lt;/li&gt;
&lt;li&gt;When using API keys, configure them in the authorization tab rather than adding them directly to request URLs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  7) Stop ignoring the warnings!
&lt;/h3&gt;

&lt;p&gt;Postman does a great job at providing several warnings at different places when it suspects that something may be wrong. This warning can come as a UI popup, a push notification, an email, or status indicators on the UI depending on what it is you are trying to do. Always make sure you pay attention to these warnings and never ignore them.&lt;/p&gt;

&lt;p&gt;It never hurts to double check to be sure you are not exposing any sensitive information.&lt;/p&gt;

&lt;p&gt;Remember, your data will only be public if you make them public.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro Tip:&lt;/strong&gt; When creating a new Workspace, always start with a Private or Team Workspace. Once you’re done making changes, review your work and then make it public. Ensure you always check thoroughly before changing a Workspace visibility to “Public”.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp3iwknopl8goisihl2n7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp3iwknopl8goisihl2n7.png" alt="image|690x222" width="800" height="257"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzfihlkvacnaqm1pscfjb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzfihlkvacnaqm1pscfjb.png" alt="image|690x127" width="800" height="148"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  7) Enforce the Principle of Least Privilege(POLP)
&lt;/h3&gt;

&lt;p&gt;Workspaces and Teams in Postman have Role Based Access Control(RBAC) integrated in them. We encourage teams collaborating in Postman to always give access and certain privileges to only those who need them. In a Postman Team, only individuals with super admin and community manager roles are allowed to manage all public elements. Therefore, we encourage you to only assign these roles to necessary people and have a standard review process in place for when Workspaces are being published to the public.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://learning.postman.com/docs/collaborating-in-postman/manage-public-elements/" rel="noopener noreferrer"&gt;Learn more about managing public elements in Postman here&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Securing your APIs is crucial, and Postman provides various tools to help you keep your secrets safe. By leveraging features like Postman Vault, the Secret Scanner, Guided Auth, Authorization Helpers, etc. you can significantly reduce the risk of exposing sensitive data.&lt;/p&gt;

&lt;p&gt;Make sure you implement these best practices and regularly audit your Postman workspaces to ensure that your API security remains strong. &lt;/p&gt;

&lt;p&gt;Got questions? Found any of this helpful? Let me know in the comments!&lt;/p&gt;

&lt;p&gt;Happy coding and stay secure!&lt;br&gt;
Cheers!&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This was originally posted on the &lt;a href="https://community.postman.com/t/stop-exposing-secrets-secure-your-apis-in-postman-like-a-pro/76420?u=gbadebo-bello" rel="noopener noreferrer"&gt;Postman Community Forum&lt;/a&gt;&lt;/p&gt;

</description>
      <category>apisecurity</category>
      <category>postman</category>
      <category>authentication</category>
      <category>security</category>
    </item>
    <item>
      <title>GraphQL interview questions</title>
      <dc:creator>Melinda Gutermuth</dc:creator>
      <pubDate>Mon, 26 Feb 2024 17:18:53 +0000</pubDate>
      <link>https://dev.to/postman/graphql-interview-questions-3575</link>
      <guid>https://dev.to/postman/graphql-interview-questions-3575</guid>
      <description>&lt;p&gt;According to &lt;a href="https://www.postman.com/state-of-api/api-technologies/#api-technologies"&gt;Postman’s 2023 State of the API Report&lt;/a&gt;, GraphQL has taken the place of SOAP as the third most popular API architectural style, following only &lt;a href="https://dev.to/mjgutermuth/what-is-a-rest-api-examples-uses-and-challenges-3272-temp-slug-9957221"&gt;REST&lt;/a&gt; and Webhooks. Whether you’re applying to be a developer, technical lead, data engineer, or technical product manager, these answers to some of the most common GraphQL interview questions will help you navigate the interview process with confidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  GraphQL interview questions and answers: beginner
&lt;/h2&gt;

&lt;p&gt;In this section, we’ll go over some of the most common beginner-level questions and answers about GraphQL. You might be asked these questions if you’re applying for a role as a frontend developer, web or mobile app developer, product manager, or UI/UX designer at an &lt;a href="https://www.postman.com/api-first/"&gt;API-first&lt;/a&gt; company.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is GraphQL?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://blog.postman.com/what-is-a-graphql-api-how-does-it-work/"&gt;GraphQL&lt;/a&gt; is both a query language and a server-side runtime for APIs that allows clients to request the exact data they need. Unlike traditional &lt;a href="https://dev.to/loopdelicious/graphql-vs-rest-6l4-temp-slug-4782228"&gt;REST APIs&lt;/a&gt; that might return more information than you’re looking for, GraphQL offers a way to interact with data services that prevents data over- or under-fetching. Web and mobile applications often use GraphQL to enhance data retrieval and manipulation, leveraging its server-side runtime to resolve queries.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the difference between a mutation and a query in GraphQL?
&lt;/h3&gt;

&lt;p&gt;In GraphQL, &lt;a href="https://dev.to/arlemi/how-to-implement-a-graphql-mutation-96m-temp-slug-2132257"&gt;mutations&lt;/a&gt; are used to write or change data, while &lt;a href="https://dev.to/mjgutermuth/what-is-a-graphql-query-3kfj-temp-slug-6370354"&gt;queries&lt;/a&gt; are used to read data. Queries are used for operations that do not have side effects, such as data retrieval, while mutations are used for operations that can modify data, such as those that create, update, or delete records.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is a GraphQL schema?
&lt;/h3&gt;

&lt;p&gt;A GraphQL schema describes the capabilities of a GraphQL server by defining a list of types and directives. It describes the types of data that can be queried and manipulated, the relationships between these types, and the queries and mutations that are available. The schema acts as a contract that specifies what information the client may request and how the server will respond.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are scalar types in GraphQL?
&lt;/h3&gt;

&lt;p&gt;Scalar types are basic atomic data types in GraphQL that represent single values. They include types like &lt;code&gt;String&lt;/code&gt; for text, &lt;code&gt;Int&lt;/code&gt; for integers, &lt;code&gt;Float&lt;/code&gt; for floating-point numbers, &lt;code&gt;Boolean&lt;/code&gt; for true or false values, and &lt;code&gt;ID&lt;/code&gt; for unique identifiers. Scalars are used to represent the leaves of the GraphQL query tree, serving as the foundation for more complex data structures.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is an exclamation point in GraphQL?
&lt;/h3&gt;

&lt;p&gt;In GraphQL, an exclamation point (&lt;code&gt;!&lt;/code&gt;) indicates that a field in a query or a field argument is non-nullable. This means that the field must contain a value and cannot be empty. When used with a field, it ensures that the server always returns a value that is not null. When used with a field argument, it indicates that the client must provide the argument and it cannot be left out.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are resolvers in GraphQL?
&lt;/h3&gt;

&lt;p&gt;In GraphQL, each schema field corresponds to a function known as the resolver. The resolver returns the value for a given field in an operation. Resolvers provide instructions on how to compute or retrieve data from the server or other sources. They are a crucial part of implementing GraphQL servers because they translate the fields in the schema to the real data sources—which might be databases, REST APIs, or other services.&lt;/p&gt;

&lt;h3&gt;
  
  
  When is GraphQL useful?
&lt;/h3&gt;

&lt;p&gt;GraphQL is useful in situations where applications require efficient and precise data retrieval, real-time updates, and complex data relationships. It also functions well in situations where there are multiple clients, different data requirements, and the need to compile information from various sources. Additionally, GraphQL can be used as a layer to overcome the limitations of RESTful or SOAP APIs by providing a more flexible querying interface.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the key concepts of the GraphQL query language?
&lt;/h3&gt;

&lt;p&gt;The key concepts of the GraphQL query language revolve around its schema-driven approach. GraphQL defines types and relationships in a schema, allowing clients to request precisely the data they need using queries. Mutations enable clients to modify data, while fields specify what data to retrieve. Arguments, aliases, and fragments enhance query flexibility, and variables make queries dynamic. Directives offer conditional execution, and introspection allows clients to explore a schema’s structure and capabilities, making GraphQL a powerful and versatile querying language.&lt;/p&gt;

&lt;h2&gt;
  
  
  GraphQL interview questions and answers: intermediate
&lt;/h2&gt;

&lt;p&gt;This section includes some common GraphQL interview questions and answers at the intermediate level. You might be asked these questions if you’re applying for a role as a backend developer, DevOps engineer, technical product manager, or solutions architect.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are variables in GraphQL, and how do you use them?
&lt;/h3&gt;

&lt;p&gt;Variables in GraphQL are dynamic values that can be passed as arguments in queries or mutations, allowing for more flexible and reusable code. You define variables in your query or mutation and then pass the actual values when executing the request. With this method, you can write generic mutations or queries where the details are provided at runtime.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is introspection in GraphQL, and how is it useful?
&lt;/h3&gt;

&lt;p&gt;GraphQL introspection enables clients to ask the GraphQL server questions about the schema, including available types, fields, and directives. It’s useful for building client-side tools that need to understand the schema, and it supports auto-generating queries, documentation, and validating queries against the schema before sending them. As a result, GraphQL APIs are self-documenting and easier to explore and integrate.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do you do authentication and authorization in GraphQL?
&lt;/h3&gt;

&lt;p&gt;Authentication is usually handled outside of the GraphQL layer, typically through &lt;a href="https://dev.to/arlemi/what-are-http-headers-2lml-temp-slug-1555908"&gt;HTTP headers&lt;/a&gt; such as JSON Web Tokens (JWT). Authorization is implemented in GraphQL resolvers by checking permissions before returning data or performing mutations. &lt;a href="https://www.postman.com/api-platform/api-authentication/"&gt;Authentication&lt;/a&gt; verifies a user’s identity, while authorization determines their access rights to various parts of the GraphQL schema.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do you do error handling in GraphQL?
&lt;/h3&gt;

&lt;p&gt;Instead of using traditional &lt;a href="https://dev.to/mjgutermuth/what-are-http-status-codes-4556-temp-slug-4384766"&gt;HTTP status codes&lt;/a&gt;, errors are returned in the response alongside the data. These errors can be generated by the GraphQL server (for syntax or validation errors), as well as by resolvers (for business logic or runtime errors). Clients can then parse these errors and handle them accordingly, often using the error message and optional fields—like error codes or paths—to identify the nature and location of the error.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do you handle and report errors in a production GraphQL API?
&lt;/h3&gt;

&lt;p&gt;Errors in a production GraphQL API are handled by sending user-friendly error messages to the client and logging them to a monitoring system for analysis and alerting. Sensitive data is omitted for security reasons, but critical details about the error context—such as the query, variables, and user information—are recorded for debugging purposes. Additionally, operational errors are differentiated from developer errors in order to help with response and mitigation strategies.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the main difference between GraphQL and REST?
&lt;/h3&gt;

&lt;p&gt;The main difference between &lt;a href="https://blog.postman.com/graphql-vs-rest"&gt;GraphQL and REST&lt;/a&gt; is their approach to data retrieval. GraphQL allows clients to request exactly the data they need in a single query, reducing over-fetching and under-fetching, while REST typically uses predefined endpoints that return fixed data structures. GraphQL enables clients to aggregate data from multiple sources in a single request, but REST often requires multiple round-trips to different endpoints to gather all necessary data.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the advantages and disadvantages of GraphQL?
&lt;/h3&gt;

&lt;p&gt;GraphQL has the advantages of efficient data fetching, customized client requests, and a strongly typed schema that makes API exploration and validation easier. But compared to conventional REST APIs, its disadvantages include a steeper learning curve, potentially intensive server-side processing, and complex query optimization. Additionally, GraphQL queries are dynamic, which can make caching more of a challenge.&lt;/p&gt;

&lt;h3&gt;
  
  
  How can you implement versioning in a GraphQL API without breaking existing clients?
&lt;/h3&gt;

&lt;p&gt;GraphQL developers can successfully implement &lt;a href="https://www.postman.com/api-platform/api-versioning/"&gt;API versioning&lt;/a&gt; by using the schema extension, which allows them to add or change fields and types without affecting or deleting existing ones. This approach, known as “evolutionary” or “continuous” versioning, allows clients to continue using the original schema while new clients use the extended schema. Developers can also preserve backward compatibility by deprecating obsolete fields rather than deleting them and by using field aliases for major changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  GraphQL interview questions and answers: advanced
&lt;/h2&gt;

&lt;p&gt;We’ll now go over some advanced GraphQL questions. If you’re applying for a role as a GraphQL developer, senior full-stack developer, API architect, or performance engineer, you might be asked some of the more in-depth questions in this section.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is batching in GraphQL, and what is its impact on performance?
&lt;/h3&gt;

&lt;p&gt;Batching in GraphQL refers to the process of combining multiple queries or mutations into a single HTTP request, which reduces the number of network round trips. This approach can significantly improve performance by minimizing the latency and overhead associated with making multiple separate requests—particularly in scenarios with multiple concurrent data requirements. However, it requires careful management on the server side to efficiently resolve these batched requests without overloading the system; tools like &lt;a href="https://github.com/graphql/dataloader"&gt;DataLoader&lt;/a&gt; can help.&lt;/p&gt;

&lt;h3&gt;
  
  
  How can you optimize GraphQL queries for performance, especially when dealing with deeply nested data?
&lt;/h3&gt;

&lt;p&gt;To optimize GraphQL queries for performance, use query depth limiting and complexity analysis to avoid costly database operations. You should also use efficient data loading techniques, such as batching and caching at the data fetching layer, to reduce database load. Additionally, consider implementing a persisted queries mechanism, which will store and efficiently retrieve frequently used or expensive queries. This approach will reduce the need for query parsing and validation on each request.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are some security considerations and best practices when exposing a GraphQL API to the public internet?
&lt;/h3&gt;

&lt;p&gt;Strong authentication and authorization procedures, input validation and sanitization, and limitations on query complexity and depth are essential when opening a GraphQL API to public access. It’s also important to use &lt;a href="https://www.postman.com/api-platform/api-monitoring/"&gt;API monitoring&lt;/a&gt; and rate-limiting techniques to identify and stop abusive traffic patterns. Additionally, keep the GraphQL schema secure and don’t reveal sensitive data in error messages in order to protect against information leakage and potential exploitation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related:&lt;/strong&gt; &lt;a href="https://dev.to/arlemi/dont-panic-a-developers-guide-to-building-secure-graphql-apis-4f81-temp-slug-3905631"&gt;Don’t panic: a developer’s guide to building secure GraphQL APIs&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How would you protect against common security vulnerabilities, like SQL injection or DDoS attacks, in a GraphQL API?
&lt;/h3&gt;

&lt;p&gt;To protect a GraphQL API against SQL injection, use parameterized queries or prepared statements in database operations, and rigorously validate and sanitize all user inputs. To defend against DDoS attacks, implement rate limiting, query complexity analysis, and depth limiting to control the load on your server. As an added measure, use monitoring systems and Web Application Firewalls (WAFs) to identify and address suspicious traffic or activities.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the benefits and challenges of federated GraphQL schemas in a microservices architecture?
&lt;/h3&gt;

&lt;p&gt;Federated GraphQL schemas in a microservice-based architecture allow different services to define their own part of the schema, enabling a scalable and modular approach that aligns well with microservice principles. By giving clients access to a single API gateway, this federation increases API usability and development efficiency. However, challenges include maintaining schema consistency across services, handling cross-cutting concerns like authorization and error handling, and ensuring efficient query execution without incurring significant inter-service communication overhead.&lt;/p&gt;

&lt;h3&gt;
  
  
  How can you create custom directives in GraphQL, and what are some use cases for them?
&lt;/h3&gt;

&lt;p&gt;Custom directives in GraphQL can be defined in the schema language and implemented on the server side, typically in the GraphQL server configuration. These directives can be used to change how queries or mutations are executed; for example, they can be used to perform field-level transformations, enforce permissions, or implement custom business logic. Some use cases include logging, authentication, field deprecation, and dynamically changing query responses based on certain conditions or user roles.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the role of serverless functions in a serverless GraphQL architecture, and when might you use them?
&lt;/h3&gt;

&lt;p&gt;A serverless GraphQL architecture eliminates the requirement for a dedicated, continuously operating server by using serverless functions to carry out the business logic of GraphQL resolvers. Incoming GraphQL requests are handled by these dynamically allocated functions, which enable cost-effective scaling based on request load. They are particularly useful for handling sporadic or unpredictable traffic, executing computationally intensive tasks, and integrating with other serverless services or APIs. These benefits make serverless functions a flexible and scalable backend solution.&lt;/p&gt;

&lt;h3&gt;
  
  
  How can you implement real-time updates in GraphQL using subscriptions?
&lt;/h3&gt;

&lt;p&gt;The subscriptions feature in GraphQL enables clients to receive real-time data from the server over a persistent connection, usually through WebSockets, which is useful for implementing real-time updates. When a client subscribes to a specific event, the GraphQL server pushes updates to the client as the relevant data changes, keeping the client in sync. This is especially useful for features such as live chats, real-time notifications, or any scenario in which data must be updated in real time on the client side.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;This article has covered a wide range of GraphQL topics, from the basics to more advanced strategies and concepts. GraphQL offers an incredibly flexible way to work with APIs, as demonstrated by the variety of questions we have answered. Whether you’re a developer, a product manager, or a user experience designer, GraphQL knowledge is critical to your success in the software industry today.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Technical review by Meenakshi Dhanani.&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;The post &lt;a href="https://dev.to/jansche/graphql-interview-questions-4cd9-temp-slug-2088391"&gt;GraphQL interview questions&lt;/a&gt; appeared first on &lt;a href="https://blog.postman.com"&gt;Postman Blog&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>graphql</category>
      <category>postman</category>
      <category>interview</category>
      <category>api</category>
    </item>
    <item>
      <title>Postman Terms vs GitHub Terms</title>
      <dc:creator>Johannes Nicolai</dc:creator>
      <pubDate>Wed, 06 Dec 2023 22:48:24 +0000</pubDate>
      <link>https://dev.to/postman/postman-terms-vs-github-terms-37n2</link>
      <guid>https://dev.to/postman/postman-terms-vs-github-terms-37n2</guid>
      <description>&lt;p&gt;I am an open source enthusiast who recently joined Postman and previously worked at GitHub. Many Postman concepts around organization, discovery, collaboration, users, and permissions are quite similar to GitHub’s, but they are referenced with different terms. We noticed in discussions with our community that it helped accelerate adoption of both platforms when we presented a short comparison of the concepts and their terms. This blog post builds on the first iterations of simple comparison tables in my &lt;a href="https://www.postman.com/jonico-postman"&gt;Postman&lt;/a&gt; and &lt;a href="https://github.com/jonico"&gt;GitHub&lt;/a&gt; profiles. Read on to learn more.&lt;/p&gt;

&lt;h2&gt;
  
  
  Organizing users
&lt;/h2&gt;

&lt;h4&gt;
  
  
  Postman team vs. GitHub Enterprise account
&lt;/h4&gt;

&lt;p&gt;One of the key differences between Postman and GitHub is the concept of a team. In Postman, a &lt;a href="https://learning.postman.com/docs/administration/managing-your-team/managing-your-team/"&gt;team&lt;/a&gt; encompasses all users and workspaces within an entire company or larger business unit. It can potentially have thousands of workspaces and users (groups). GitHub uses the term &lt;a href="https://docs.github.com/en/enterprise-cloud@latest/admin/overview/about-enterprise-accounts"&gt;"Enterprise Account"&lt;/a&gt; to refer to a similar concept, which encompasses all of the users and repositories within multiple organizations. If you are looking for a way to group a subset of users to form a “&lt;em&gt;team of users&lt;/em&gt;” in Postman, have a look at &lt;a href="https://learning.postman.com/docs/administration/managing-your-team/user-groups/"&gt;user groups&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Postman user group vs. GitHub team(s)
&lt;/h4&gt;

&lt;p&gt;In Postman, &lt;a href="https://learning.postman.com/docs/administration/managing-your-team/user-groups/"&gt;user groups&lt;/a&gt; are defined at the Postman account level and allow you to group users across multiple workspaces. User groups are a logical grouping of users based on a company's or organization’s needs. For instance, this grouping could be based on a people team, project, responsibility (i.e., an admin group), or some other logical organization of users.&lt;/p&gt;

&lt;p&gt;In GitHub, &lt;a href="https://docs.github.com/en/organizations/organizing-members-into-teams/about-teams"&gt;teams&lt;/a&gt; are defined one level below (i.e., at the organization level) and govern access to the repositories of the organization to which they belong. GitHub teams can also be used to group people based on their responsibility or interest, but if you like to use teams across GitHub organizations, you need to duplicate them. &lt;/p&gt;

&lt;h4&gt;
  
  
  Postman team member vs. member of a GitHub Enterprise account/org member
&lt;/h4&gt;

&lt;p&gt;A &lt;a href="https://learning.postman.com/docs/reports/team-details-reports/"&gt;team member&lt;/a&gt; in Postman refers to a user who is part of a specific team within the organization. In GitHub, an equivalent concept is a &lt;a href="https://docs.github.com/en/enterprise-cloud@latest/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise#enterprise-members"&gt;member of an enterprise account&lt;/a&gt; or an organization member in a freestanding GitHub organization. A GitHub team member would only belong to one organization.&lt;/p&gt;

&lt;h4&gt;
  
  
  Postman Workspace Admin vs. GitHub org owner
&lt;/h4&gt;

&lt;p&gt;A &lt;a href="https://learning.postman.com/docs/collaborating-in-postman/roles-and-permissions/#workspace-roles"&gt;Workspace Admin&lt;/a&gt; in Postman has administrative privileges within a workspace. In GitHub, the equivalent role is an &lt;a href="https://docs.github.com/en/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization"&gt;organization owner&lt;/a&gt;, who has full administrative control over the organization and its repositories.&lt;/p&gt;

&lt;h4&gt;
  
  
  Postman Super Admin vs. GitHub enterprise owner
&lt;/h4&gt;

&lt;p&gt;In Postman, a &lt;a href="https://learning.postman.com/docs/collaborating-in-postman/roles-and-permissions/#team-roles"&gt;Super Admin&lt;/a&gt; has the highest level of administrative privileges and can manage teams and workspaces across the organization. In GitHub, the equivalent role is an &lt;a href="https://docs.github.com/en/enterprise-cloud@latest/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise#enterprise-owners"&gt;enterprise owner&lt;/a&gt;, who has full administrative control over the enterprise account.&lt;/p&gt;

&lt;h2&gt;
  
  
  Managing access
&lt;/h2&gt;

&lt;h4&gt;
  
  
  Postman workspace vs. GitHub orgs
&lt;/h4&gt;

&lt;p&gt;Both Postman and GitHub provide features for organizing content and enabling collaboration. &lt;a href="https://learning.postman.com/docs/collaborating-in-postman/using-workspaces/managing-workspaces/"&gt;Workspaces&lt;/a&gt; in Postman are used to collaborate on &lt;a href="https://learning.postman.com/docs/getting-started/creating-the-first-collection/"&gt;collections&lt;/a&gt;, &lt;a href="https://learning.postman.com/docs/designing-and-developing-your-api/creating-an-api/"&gt;APIs&lt;/a&gt;, &lt;a href="https://learning.postman.com/docs/designing-and-developing-your-api/mocking-data/setting-up-mock/"&gt;mock servers&lt;/a&gt;, &lt;a href="https://learning.postman.com/docs/monitoring-your-api/intro-monitors/"&gt;monitors&lt;/a&gt;, &lt;a href="https://learning.postman.com/docs/sending-requests/managing-environments/"&gt;environments&lt;/a&gt;, and &lt;a href="https://learning.postman.com/docs/postman-flows/gs/flows-overview/"&gt;Flows&lt;/a&gt;. In GitHub, &lt;a href="https://docs.github.com/en/organizations/collaborating-with-groups-in-organizations/about-organizations"&gt;organizations&lt;/a&gt; serve a similar purpose for managing &lt;a href="https://docs.github.com/en/repositories"&gt;repositories&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Postman public workspaces vs. GitHub orgs with public repositories
&lt;/h4&gt;

&lt;p&gt;Postman allows you to create &lt;a href="https://learning.postman.com/docs/collaborating-in-postman/using-workspaces/public-workspaces/"&gt;public workspaces&lt;/a&gt; that include publicly accessible content. Public Postman workspaces are comparable to GitHub organizations that contain only public repositories that are accessible to anyone.&lt;/p&gt;

&lt;h4&gt;
  
  
  Postman team workspaces vs. GitHub orgs with internal repositories
&lt;/h4&gt;

&lt;p&gt;In Postman, &lt;a href="https://learning.postman.com/docs/collaborating-in-postman/working-with-your-team/collaborating-in-team-workspaces/"&gt;team workspaces&lt;/a&gt; are accessible to any member of the same account or Postman team. In GitHub, this corresponds to &lt;a href="https://docs.github.com/en/organizations/managing-user-access-to-your-organizations-repositories/setting-base-permissions-for-an-organization"&gt;internal repositories&lt;/a&gt; and standalone organizations that have their default access/base permissions set at least to “Read.” For Postman teams that represent multiple business units or larger parts of an organization, all elements within a team workspace are potentially visible to thousands of people. This is great from an &lt;a href="https://innersourcecommons.org/"&gt;InnerSource&lt;/a&gt; and company knowledge sharing perspective. In the cases where the “need to know” principle applies, consider using private workspaces and assign the groups of people that should have access.&lt;/p&gt;

&lt;h4&gt;
  
  
  Postman private workspaces vs. GitHub orgs with base permissions set to “None”
&lt;/h4&gt;

&lt;p&gt;The word “private” in &lt;a href="https://learning.postman.com/docs/collaborating-in-postman/using-workspaces/creating-workspaces/"&gt;private workspaces&lt;/a&gt; does not imply that these workspaces can only be accessed by their creators (that’s what personal workspaces are for). It just means that not everybody in your Postman team will have read access by default (which is the case for team workspaces). You can use private workspaces to provide selective access to a group of people—either individually or by assigning Postman user groups to the workspace. You can also open the workspace up for entire business units. &lt;/p&gt;

&lt;p&gt;In GitHub, most organizations within an enterprise team are configured similarly, with &lt;a href="https://docs.github.com/en/organizations/managing-user-access-to-your-organizations-repositories/managing-team-access-to-an-organization-repository"&gt;base permissions&lt;/a&gt; set to “None,” so that access rights are assigned by GitHub teams (which are similar to Postman user groups).&lt;/p&gt;

&lt;h4&gt;
  
  
  Postman Partner Workspaces vs. GitHub repositories with invited external collaborators
&lt;/h4&gt;

&lt;p&gt;Postman allows you to create &lt;a href="https://learning.postman.com/docs/collaborating-in-postman/using-workspaces/partner-workspaces/"&gt;Partner Workspaces&lt;/a&gt; and share their contents with external collaborators outside the core team. In GitHub, you can invite &lt;a href="https://docs.github.com/en/organizations/managing-user-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization"&gt;external collaborators&lt;/a&gt; to specific repositories.&lt;/p&gt;

&lt;h4&gt;
  
  
  Postman personal workspaces vs. GitHub personal repositories
&lt;/h4&gt;

&lt;p&gt;In Postman, users can create &lt;a href="https://learning.postman.com/docs/collaborating-in-postman/using-workspaces/creating-workspaces/"&gt;personal workspaces&lt;/a&gt; that can only be accessed by their creator and Super Admins of the same team. If a user leaves the enterprise team, they lose access to their personal workspaces, as well. Similarly, GitHub allows users to have personal repositories within their personal namespace that only they can access.&lt;/p&gt;

&lt;h4&gt;
  
  
  Postman collection access keys vs. GitHub Gists
&lt;/h4&gt;

&lt;p&gt;Both GitHub and Postman provide methods to share access to source code or collections to anonymous users with a secret link. In GitHub, that functionality is called a &lt;a href="https://docs.github.com/en/get-started/writing-on-github/editing-and-sharing-content-with-gists/creating-gists"&gt;secret gist&lt;/a&gt;. In Postman, it originally was possible to share private collections with the world via &lt;a href="https://learning.postman.com/docs/collaborating-in-postman/manage-public-elements/#collection-json-links"&gt;Collection JSON Links&lt;/a&gt;, which have been deprecated. Now, Postman users can use &lt;a href="https://learning.postman.com/docs/collaborating-in-postman/manage-public-elements/#collection-access-keys"&gt;Collection Access Keys&lt;/a&gt;, which provide better control over the expiration date, as access gets revoked if the key’s creator loses access. Postman Enterprise teams can also &lt;a href="https://learning.postman.com/docs/collaborating-in-postman/manage-public-elements/#collection-access-keys"&gt;deny public link creation completely and revoke any existing links&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Postman permissions vs. GitHub permissions
&lt;/h4&gt;

&lt;p&gt;Postman Enterprise and GitHub both provide the ability to define permissions on multiple levels. Postman &lt;a href="https://learning.postman.com/docs/collaborating-in-postman/roles-and-permissions/#managing-team-roles"&gt;team roles&lt;/a&gt; on the highest level correspond with GitHub &lt;a href="https://docs.github.com/en/enterprise-cloud@latest/admin/configuration/configuring-your-enterprise#:~:text=Manage%20users-,%2C,-organizations%2C%20and%20repositories"&gt;enterprise account-wide settings&lt;/a&gt;. Those roles and settings also define who can invite new users to the team or enterprise org, who can change the visibility of workspaces or repositories, and whether ordinary users can create public workspaces or repositories. Postman &lt;a href="https://learning.postman.com/docs/collaborating-in-postman/roles-and-permissions/#workspace-roles"&gt;workspace roles&lt;/a&gt; compare best to GitHub organization &lt;a href="https://docs.github.com/en/organizations/managing-user-access-to-your-organizations-repositories/setting-base-permissions-for-an-organization"&gt;default access permissions&lt;/a&gt;, and Postman permissions on individual collections, APIs, or mock servers (&lt;a href="https://learning.postman.com/docs/collaborating-in-postman/roles-and-permissions/#element-based-roles"&gt;element-based roles&lt;/a&gt;) correspond to &lt;a href="https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-teams-and-people-with-access-to-your-repository"&gt;repository-specific permissions&lt;/a&gt; that a team or collaborator has on GitHub.&lt;/p&gt;

&lt;h2&gt;
  
  
  Managing collaboration and discovery
&lt;/h2&gt;

&lt;h4&gt;
  
  
  Postman fork vs. GitHub Fork
&lt;/h4&gt;

&lt;p&gt;Postman allows you to &lt;a href="https://learning.postman.com/docs/collaborating-in-postman/using-version-control/forking-entities/"&gt;fork&lt;/a&gt; collections, environments, and flows. It is possible to fork within the same workspace and into different workspaces. You can also have as many forks in the same workspace as you like, which makes fork-based collaboration easier. Furthermore, forks in Postman do not have to have the same visibility as the parent, and they will continue to exist if the parent gets deleted. You can keep your forks up-to-date by &lt;a href="https://learning.postman.com/docs/collaborating-in-postman/using-version-control/forking-entities/#pulling-updates-from-a-parent-element"&gt;pulling changes&lt;/a&gt; from the base collection or environment, which is similar to how &lt;a href="https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/keeping-your-pull-request-in-sync-with-the-base-branch"&gt;GitHub pull requests&lt;/a&gt; work.&lt;/p&gt;

&lt;h4&gt;
  
  
  Postman pull request vs. GitHub Pull request
&lt;/h4&gt;

&lt;p&gt;Native &lt;a href="https://learning.postman.com/docs/collaborating-in-postman/using-version-control/creating-pull-requests/"&gt;pull requests in Postman&lt;/a&gt; require the reviewer to have at least “View” permissions in the fork, as the suggested changes are not created within the same workspace, as they are in GitHub. Postman pull requests also work for changes to environments. For API development, it is also possible to &lt;a href="https://learning.postman.com/docs/designing-and-developing-your-api/versioning-an-api/versioning-an-api-overview/"&gt;use native GitHub pull requests within Postman&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Postman comments vs. GitHub comments
&lt;/h4&gt;

&lt;p&gt;In GitHub, you can &lt;a href="https://docs.github.com/en/rest/guides/working-with-comments?apiVersion=2022-11-28"&gt;comment&lt;/a&gt; on pull requests, individual source code lines in pull requests, and commits. Within &lt;a href="https://learning.postman.com/docs/collaborating-in-postman/working-with-your-team/discussing-your-work/#commenting-on-a-request"&gt;Postman&lt;/a&gt;, you can comment on collections, requests, request parameters, folders, and individual lines in API definitions, test cases, and pre-request scripts. Both platforms support Markdown and &lt;a href="https://learning.postman.com/docs/collaborating-in-postman/working-with-your-team/discussing-your-work/#tagging-members-in-comments"&gt;tagging users&lt;/a&gt; to get their attention.&lt;/p&gt;

&lt;h4&gt;
  
  
  Postman tags vs. GitHub repository topics
&lt;/h4&gt;

&lt;p&gt;In Postman, you can &lt;a href="https://blog.postman.com/introducing-tags-the-new-way-to-navigate-in-postman/"&gt;tag&lt;/a&gt; collections, APIs, and workspaces to make them easily discoverable within your workspace, your &lt;a href="https://learning.postman.com/docs/collaborating-in-postman/adding-private-network/"&gt;private API network&lt;/a&gt;, your team, or even the &lt;a href="https://www.postman.com/explore"&gt;Public API Network&lt;/a&gt;. In GitHub, you can assign &lt;a href="https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/classifying-your-repository-with-topics"&gt;topics&lt;/a&gt; to repositories to make them more discoverable within the same organization or across all of&lt;a href="https://github.com/explore"&gt; GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Postman published documentation vs. GitHub Pages
&lt;/h4&gt;

&lt;p&gt;Postman documentation can be &lt;a href="https://learning.postman.com/docs/publishing-your-api/publishing-your-docs/"&gt;published&lt;/a&gt; to a website hosted by Postman or to your own &lt;a href="https://learning.postman.com/docs/publishing-your-api/custom-doc-domains/"&gt;custom domain&lt;/a&gt;. Similarly, GitHub provides the ability to turn your repository content into a web page hosted on &lt;a href="https://docs.github.com/en/pages"&gt;GitHub Pages&lt;/a&gt; with support for your &lt;a href="https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site"&gt;custom domain&lt;/a&gt;, as well.&lt;/p&gt;

&lt;p&gt;If you’d like to see what is possible with custom branding and domains, check out &lt;a href="https://apidocs.imgur.com/"&gt;Imgur’s published Postman Collection&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  “Run in Postman” button vs. GitHub Codespaces
&lt;/h4&gt;

&lt;p&gt;If you have your own API or developer portal and you’d like to provide a lightweight way to test drive your APIs or source code in a live execution environment, you can generate a Markdown or HTML snippet with a &lt;a href="https://learning.postman.com/docs/publishing-your-api/run-in-postman/creating-run-button/"&gt;“Run in Postman”&lt;/a&gt; button, or point to a &lt;a href="https://docs.github.com/en/codespaces/overview"&gt;GitHub Codespace&lt;/a&gt; of the corresponding GitHub repository.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.paypal.com/api/rest/postman/"&gt;PayPal’s developer portal&lt;/a&gt; includes a great example of how to use a “Run in Postman” button to let anybody try out your API within less than a minute without previous knowledge.&lt;/p&gt;

&lt;h2&gt;
  
  
  We love feedback!
&lt;/h2&gt;

&lt;p&gt;We hope that these comparisons can help you to more easily adopt Postman and GitHub—and use them together. If you have any feedback or additional mapping suggestions, please open a pull request in &lt;a href="https://github.com/postman-solutions-eng/github-postman-concept-mapping"&gt;our GitHub repository&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>postman</category>
      <category>github</category>
      <category>terms</category>
      <category>comparison</category>
    </item>
    <item>
      <title>API design interview questions</title>
      <dc:creator>Melinda Gutermuth</dc:creator>
      <pubDate>Mon, 27 Nov 2023 16:53:38 +0000</pubDate>
      <link>https://dev.to/postman/api-design-interview-questions-4kob</link>
      <guid>https://dev.to/postman/api-design-interview-questions-4kob</guid>
      <description>&lt;p&gt;According to &lt;a href="https://www.postman.com/state-of-api/who-works-with-apis/#who-works-with-apis"&gt;Postman’s 2023 State of the API report&lt;/a&gt;, over 75% of respondents agree that developers at API-first companies are more productive, create better software, and integrate faster with partners. With this in mind, it’s no surprise that so many people want to be a part of an &lt;a href="https://www.postman.com/api-first/"&gt;API-first&lt;/a&gt; organization. Whether you’re applying to be a developer, QA engineer, data scientist, or technical product manager, these answers to some of the most common API design interview questions will help you navigate the interview process with confidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  API design interview questions and answers: beginner
&lt;/h2&gt;

&lt;p&gt;In this section, we’ll go over some of the most common beginner-level questions and answers about API design. These are questions you might be asked if you’re applying for a role as a product manager, technical writer, UX/UI designer, or sales and marketing professional at an API-first organization.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is API design?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.postman.com/api-platform/api-design/"&gt;API design&lt;/a&gt; is the process of making intentional decisions about how an API will allow different software components to interact and exchange data with one another. These decisions, which are captured in a specification format such as &lt;a href="https://blog.postman.com/what-is-openapi"&gt;OpenAPI&lt;/a&gt; or AsyncAPI, help ensure that the API is user-friendly and able to meet both present and future needs.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is API-first design?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://dev.to/mjgutermuth/what-is-api-first-design-2pf2-temp-slug-1112176"&gt;API-first design&lt;/a&gt; involves designing an API and its functionality at the beginning of the application development process. When following an API-first design approach, stakeholders create APIs that will serve as the application’s foundation and the contract between various software components, allowing for seamless &lt;a href="https://www.postman.com/api-platform/api-integration/"&gt;integration&lt;/a&gt; and collaboration.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why are APIs important in software development?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.postman.com/what-is-an-api/"&gt;APIs&lt;/a&gt; enable different software components, services, or applications to interact and share data. APIs that are well-designed promote interoperability, efficiency, and reuse while also putting the user experience first. This increases adoption and allows developers to build on existing solutions to quickly and easily create modern and complex applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is a REST API?
&lt;/h3&gt;

&lt;p&gt;REST, which stands for Representational State Transfer, is a set of principles for creating simple, scalable, and flexible systems that can interact and share data over a network. &lt;a href="https://dev.to/jansche/what-is-a-rest-api-examples-uses-and-challenges-8k3-temp-slug-6487224"&gt;REST APIs&lt;/a&gt; are stateless, resource-based, and leverage a standardized set of HTTP methods for client and server communication. REST is the most popular API architectural style and the foundation of the web.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the different components of an HTTP request?
&lt;/h3&gt;

&lt;p&gt;The most basic REST APIs use standard &lt;a href="https://dev.to/jansche/what-are-http-methods-1256-temp-slug-7192507"&gt;HTTP methods&lt;/a&gt; like POST, GET, PUT, and DELETE to perform Create, Read, Update, and Delete (CRUD) operations on resources that are represented by URLs. An HTTP request includes four major pieces of information:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Method&lt;/strong&gt; : A standard verb that describes the action being applied to the resource, such as POST, GET, PUT, or DELETE.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uniform Resource Identifier (URI)&lt;/strong&gt;: Identifies the resource on the server. A URI, which is also known as an &lt;a href="https://dev.to/sahuvikramp/what-is-an-api-endpoint-2op0-temp-slug-3679119"&gt;API endpoin&lt;/a&gt;t, can be either a relative or absolute path, and it may contain data like path or query parameters. For example, &lt;code&gt;/products&lt;/code&gt; might identify a list of products, &lt;code&gt;/products?type=book&lt;/code&gt; might identify books within the product list, and &lt;code&gt;/products/1234&lt;/code&gt; might identify a specific book.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Request headers&lt;/strong&gt; : Contain metadata about the request as key-value pairs. For instance, these &lt;a href="https://dev.to/arlemi/what-are-http-headers-2lml-temp-slug-1555908"&gt;HTTP headers&lt;/a&gt; might include the type of client or browser, the client-supported format, the message body format, and cache settings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Request body&lt;/strong&gt; : The payload, which is usually &lt;a href="https://dev.to/mjgutermuth/what-is-json-4nec-temp-slug-5003832"&gt;JSON&lt;/a&gt; or &lt;a href="https://dev.to/jansche/what-is-xml-43l7-temp-slug-5076014"&gt;XML&lt;/a&gt; data, that is sent to the server. For example, if you send a POST request to &lt;code&gt;/products&lt;/code&gt;, the request body will contain the data for the product you want to create.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  What are the different components of an HTTP response?
&lt;/h3&gt;

&lt;p&gt;An HTTP response includes three major components:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;HTTP status code&lt;/strong&gt; : Indicates the outcome of the request, such as 200 OK for success.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Response headers&lt;/strong&gt; : Contain metadata about the response, including information like the content type, server details, and caching directives.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Response body&lt;/strong&gt; : The payload that the server sends in response to the request. For example, this could be HTML from a web page, or it might be JSON or XML data from an API.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  What is an HTTP status code?
&lt;/h3&gt;

&lt;p&gt;An &lt;a href="https://dev.to/mjgutermuth/what-are-http-status-codes-4556-temp-slug-4384766"&gt;HTTP status code&lt;/a&gt; is a three-digit numeric code that a server returns as part of an HTTP response. The code provides information about the result of the request. For example, a successful request usually returns a 200 OK status code, while an unsuccessful request might return a 404 Not Found status code. HTTP status codes are organized into classes: codes in the 200s are successful, 300s indicate redirection, 400s signify a consumer or client error, and 500s point to a provider or server error.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the most common HTTP status codes you see when working with REST APIs?
&lt;/h3&gt;

&lt;p&gt;These are some of the most common HTTP status codes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;200 OK&lt;/li&gt;
&lt;li&gt;201 Created&lt;/li&gt;
&lt;li&gt;204 No Content&lt;/li&gt;
&lt;li&gt;400 Bad Request&lt;/li&gt;
&lt;li&gt;401 Unauthorized&lt;/li&gt;
&lt;li&gt;403 Forbidden&lt;/li&gt;
&lt;li&gt;404 Not Found&lt;/li&gt;
&lt;li&gt;500 Internal Server Error&lt;/li&gt;
&lt;li&gt;503 Service Unavailable&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What is a payload?
&lt;/h3&gt;

&lt;p&gt;In the context of APIs, the payload is what goes in the body of the request or response. It contains the data that is sent as part of an API request or response using a POST or GET method. The payload contains the actual information being sent, such as JSON or XML data.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why is versioning important in API design?
&lt;/h3&gt;

&lt;p&gt;Versioning is crucial to API design because it helps maintain compatibility, offer stability, and reduce disruptions. Versioning also enables incremental updates, supports a wide range of clients, and fosters user and developer confidence. By isolating changes, versioning ensures that existing clients won’t break when improvements or fixes are introduced, which allows for smooth and controlled evolution of the API while encouraging adoption and clear communication about updates and deprecation plans.&lt;/p&gt;

&lt;h2&gt;
  
  
  API design interview questions and answers: intermediate
&lt;/h2&gt;

&lt;p&gt;This section includes some common API design questions and answers at the intermediate level. These are some of the questions you might be asked in an interview if you’re applying for a role as a full-stack developer, QA engineer, data scientist, or technical product manager.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the key principles of good API design?
&lt;/h3&gt;

&lt;p&gt;Good API design prioritizes the needs of API consumers while also being &lt;a href="https://dev.to/jansche/consistent-api-designs-make-people-feel-outrageously-smart-3j1n-temp-slug-103465"&gt;clear and consistent&lt;/a&gt; in its naming and behavior, offering helpful error feedback, and using standard and interoperable data formats. A well-designed API should have logical naming conventions, predictable behavior, and be easy to understand and use. It should also evolve gradually and thoughtfully, maintaining backward compatibility to support existing clients while allowing for incremental improvements to meet changing requirements.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do you ensure consistent API design?
&lt;/h3&gt;

&lt;p&gt;From the beginning, it’s important to establish clear design guidelines and best practices. For instance, naming conventions, endpoint structures, HTTP methods, and response formats should all be standardized. Additionally, conducting regular &lt;a href="https://dev.to/sahuvikramp/5-tips-for-a-game-changing-api-design-review-2j6c-temp-slug-8321093"&gt;design reviews&lt;/a&gt;, using linting to validate that design conventions are followed, providing clear &lt;a href="https://www.postman.com/api-platform/api-documentation/"&gt;API documentation&lt;/a&gt;, and fostering communication among the development team contribute to maintaining consistency throughout the API’s lifecycle.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do you handle errors and exceptions in API responses?
&lt;/h3&gt;

&lt;p&gt;When handling errors and exceptions in API responses, it is important to use &lt;a href="https://datatracker.ietf.org/doc/html/rfc7807"&gt;standard error messages&lt;/a&gt; that have meaningful status codes and human-readable descriptions of the problem to help users fix the issue. For client errors (4xx), provide comprehensive error feedback all at once. For server errors (5xx), avoid revealing sensitive system details, like OS versions, databases, or stacktraces, while still offering clear information to help users or API developers troubleshoot.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the purpose of pagination in API responses, and how would you design it?
&lt;/h3&gt;

&lt;p&gt;Using pagination in API responses helps clients retrieve and display large amounts of data in smaller, more manageable chunks. Use cursor-based pagination for optimal performance, where an API consumer navigates the data by making a request, then uses the opaque cursor from the response to make their next request with a “next” parameter. They can also leverage a “previous” cursor to retrieve prior data.&lt;/p&gt;

&lt;p&gt;If it’s necessary for users to directly access a specific page within your dataset, you can implement index-based pagination. This method separates the data into discrete pages, which clients can request by passing in the number of the “page” as a parameter. Although it can negatively affect performance, index-based pagination can be useful when users require exact control over page navigation within the dataset.&lt;/p&gt;

&lt;h3&gt;
  
  
  What’s the difference between REST and RESTful?
&lt;/h3&gt;

&lt;p&gt;The word “RESTful” describes APIs or services that adhere to REST principles. To be RESTful, a service or API must follow the rules and best practices defined by REST, such as properly using HTTP methods and representing resources as URLs. Being RESTful also entails hiding server implementation details from clients, which promotes flexibility and scalability. In a RESTful design, efficient caching techniques can also minimize unnecessary data transfers and boost performance.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the advantages of RESTful APIs?
&lt;/h3&gt;

&lt;p&gt;RESTful APIs are known for their simplicity and scalability. They map operations to resources using standard HTTP methods, promoting clarity and ease of use. RESTful APIs also encourage loose coupling between clients and servers, making it easier to evolve systems over time, and they benefit from a well-established ecosystem of tools and libraries. In addition, a REST API with a consistent interface and smart design is inherently easy to find and use, even without extensive documentation.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the disadvantages of RESTful APIs?
&lt;/h3&gt;

&lt;p&gt;RESTful APIs can encounter issues with data over-fetching or under-fetching. These problems can often be reduced by fine-tuning the API structure for more precise data control, but they can also be an indication of an &lt;a href="https://dev.to/mjgutermuth/how-to-choose-http-or-grpc-for-your-next-api-4738-temp-slug-8865160"&gt;unsuitable design&lt;/a&gt;. Sometimes this issue can be solved by using a different REST API format, such as &lt;a href="https://jsonapi.org/"&gt;JSON:API&lt;/a&gt;, which allows the retrieval of specific subsets of available fields. If exact control over data fetching is crucial, &lt;a href="https://dev.to/loopdelicious/how-graphql-fits-into-the-api-lifecycle-dgk-temp-slug-2607314"&gt;GraphQL&lt;/a&gt; might be a better fit.&lt;/p&gt;

&lt;p&gt;Another disadvantage of REST is that its request-response model isn’t built for applications that require live data. Because the client makes a request and then waits for the server to respond, applications can’t fetch real-time data in an efficient way. RESTful APIs must also encode and decode binary files like photos and videos before they can be sent. As a result of this overhead, timeouts may occur when transfers become slower and demand more bandwidth.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do you handle a long-running operation with a REST API?
&lt;/h3&gt;

&lt;p&gt;Long-running operations are typically handled asynchronously with REST APIs. First, the client initiates the operation and receives an identifier to track its progress. The client can then check the status of the operation until it is finished, as the API server processes it in the background and sends status updates or the final result via the identifier. This approach ensures that long operations do not block the client and provides a scalable and responsive API.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do you represent a “do something” operation in a REST API?
&lt;/h3&gt;

&lt;p&gt;“Do something” operations are those that need to be performed on a system or application but don’t correspond to a typical CRUD operation. To perform a “do something” operation via a REST API, you can define a resource with a noun that matches the action or the results of the action. You can then use this resource like any other resource—for example, to perform an operation that results in a state change or the creation of a resource, simply execute an action with the POST method and include the action’s input data in the request body. The response should include the action’s output data and the appropriate HTTP status code.&lt;/p&gt;

&lt;h3&gt;
  
  
  What tools do you consider essential for the API design process?
&lt;/h3&gt;

&lt;p&gt;First and foremost, it’s essential to have a robust API design, documentation, &lt;a href="https://dev.to/jansche/using-mock-servers-throughout-the-api-lifecycle-28j3-temp-slug-9386318"&gt;mocking&lt;/a&gt;, and testing tool such as Postman. &lt;a href="https://blog.postman.com/better-practices-for-git-version-control-in-postman/"&gt;Version contro&lt;/a&gt;l systems, such as Git, are also critical in managing &lt;a href="https://dev.to/loopdelicious/what-is-openapi-8i5-temp-slug-6439199"&gt;OpenAPI&lt;/a&gt; definitions, as they allow for efficient versioning and synchronization to track changes over time. Additionally, &lt;a href="https://learning.postman.com/docs/api-governance/configurable-rules/spectral/"&gt;linting tools&lt;/a&gt; help maintain code quality and consistency throughout your API development process. Together, these tools collectively empower API developers to create well-structured, comprehensively documented, and thoroughly tested APIs, which enhances their usability and ease of integration.&lt;/p&gt;

&lt;h2&gt;
  
  
  API design interview questions and answers: advanced
&lt;/h2&gt;

&lt;p&gt;In this section, we’ll go over some advanced API design questions. If you’re applying for a role as a backend developer, API designer or architect, DevOps engineer, or solutions architect, you might be asked some of the more in-depth questions in this section.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the process of designing an API from scratch?
&lt;/h3&gt;

&lt;p&gt;Define the API’s &lt;a href="https://dev.to/mjgutermuth/how-to-enhance-your-api-first-design-process-3ofb-temp-slug-2932440"&gt;goals, scope, and purpose&lt;/a&gt; first, taking into account the requirements of both developers and end users. This process usually occurs during the initial “Define” phase of the &lt;a href="https://dev.to/jansche/the-8-point-api-lifecycle-blueprint-3op4-temp-slug-9748578"&gt;API lifecycle&lt;/a&gt;. You should also consider the subject matter, the providing system, and the limitations and preferences of API consumers. These constraints might include factors like supported HTTP methods, industry-specific data formats, or system availability windows.&lt;/p&gt;

&lt;p&gt;Next, create a programming interface that is clear, consistent, versatile, evolvable, and user-friendly. To do this, decide which features and capabilities you want your API to have—and then derive actions and resources from those features. Next, define resource paths, choose the appropriate methods, and establish meaningful status codes. As you go, pay attention to the fine-grained modeling of input and output data. Finally, continuously gather feedback to refine and improve the API’s design and functionality over time.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are some best practices for RESTful API design?
&lt;/h3&gt;

&lt;p&gt;There are many best practices for designing effective RESTful APIs. Start by designing resource paths with meaningful names and clear structures that reflect the relationships between resources. Next, standardize the API’s actions and capabilities by representing them as CRUD operations applied to resources. It’s also important to return meaningful status codes to indicate operation success or failure, maintain overall consistency and predictability, and adhere to established standards in URLs, operation behavior, data organization, naming conventions, and data typing.&lt;/p&gt;

&lt;p&gt;To increase performance, make the API cacheable and stateless. Additionally, make sure the right versioning mechanisms are in place to handle changes without causing disruptions. These guidelines bring clarity, consistency, and scalability to API design, which in turn promotes user satisfaction and developer adoption.&lt;/p&gt;

&lt;h3&gt;
  
  
  How would you handle the versioning and deprecation of an API?
&lt;/h3&gt;

&lt;p&gt;There are several steps you can take to gracefully manage &lt;a href="https://www.postman.com/api-platform/api-versioning/"&gt;API versioning&lt;/a&gt; and deprecation. For instance, use version identifiers in URLs or headers to let clients choose between versions, and introduce new, non-backward-compatible versions only when absolutely necessary. Give each version a long lifespan to identify weaknesses in its design, making only backward-compatible changes, even if it delays some updates and fixes. You can then leverage new versions to introduce major features alongside necessary improvements. If users are eager to use the new features, they’re more likely to accept &lt;a href="https://blog.postman.com/how-to-catch-breaking-changes-before-they-happen/"&gt;breaking changes&lt;/a&gt;. It’s also important to make sure that clients are aware of changes, which involves providing thorough documentation and precise deprecation timelines. Deprecated APIs can be safely retired after the migration period ends.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do you handle backward compatibility in API evolution?
&lt;/h3&gt;

&lt;p&gt;Preserving the features and data structures that current clients depend on is essential for maintaining backward compatibility when developing an API. Although it is usually possible to add new features or output data while maintaining compatibility with previous versions, breaking changes may result from things like altering data types or formats, adding or removing values in enumerations, or making an existing query parameter or request body property required.&lt;/p&gt;

&lt;p&gt;Avoid breaking client code by not removing or changing any currently supported endpoints or fields without first clearly marking them as deprecated and providing an explanation of how to migrate away from them. Selecting extensible data types and formats early on—such as objects rather than strings or arrays—can also be helpful. With a versioned approach, clients can choose which API version they want to use, so older clients continue to work while newer clients can be safely upgraded at their own pace.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is it always a problem to introduce a breaking change?
&lt;/h3&gt;

&lt;p&gt;A breaking change may not be a problem if its benefits significantly outweigh the potential disruption to current clients. For instance, releasing a new version with improved performance, security, or features may be essential for the API’s long-term viability. The transition to a new version may be relatively smooth if the API consumer base is small or easily adaptable. Additionally, if the API provider has a well-established deprecation strategy and clear communication channels with consumers, the impact of breaking changes can be managed effectively.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are caching best practices?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://dev.to/jansche/what-is-caching-2c6-temp-slug-9420239"&gt;Caching&lt;/a&gt; can improve API performance by minimizing redundant data requests and leveraging conditional requests. Using cache keys that specifically identify resources, using the right cache-control headers, and choosing cache expiration strategies that take data volatility into account are some of the most important caching best practices. Effective caching can reduce server load, minimize latency, and improve the overall responsiveness of APIs.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is content negotiation in HTTP, and how does it relate to API design?
&lt;/h3&gt;

&lt;p&gt;When sending and receiving data over HTTP, the client and server must first agree on a common format and language through a process known as “content negotiation.” Content negotiation enables clients to specify their preferred content type (for example, JSON, XML, CSV, or PDF) and language (for example, English or French), and the server responds accordingly. Content negotiation is crucial because it helps account for the various client preferences and requirements while improving the API’s usability and versatility.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do you ensure security in API design, especially when handling sensitive data?
&lt;/h3&gt;

&lt;p&gt;To ensure security at the API design level, take a proactive approach. Begin by carefully evaluating the necessity of certain features and data. If a feature or piece of data isn’t absolutely necessary, leaving it out can help prevent security issues. Additionally, use different APIs or operations for sensitive and non-sensitive data and operations. Avoid including sensitive information in URLs, and substitute raw sensitive data with processed, less sensitive alternatives.&lt;/p&gt;

&lt;p&gt;You should also consider &lt;a href="https://www.postman.com/api-platform/api-authentication/"&gt;API authentication&lt;/a&gt; and authorization during the API design process. For instance, create and apply &lt;a href="https://dev.to/loopdelicious/what-is-oauth-20-201b-temp-slug-2707510"&gt;OAuth&lt;/a&gt; scopes to restrict access, ensuring users only access operations they are authorized for. Additionally, always include access controls in descriptions to help guide implementation, such as indicating which data is accessible to identified consumers. This approach improves &lt;a href="https://www.postman.com/api-platform/api-security/"&gt;API security&lt;/a&gt; by reducing unnecessary exposure and effectively enforcing access controls.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do you ensure you’re creating the “right” API?
&lt;/h3&gt;

&lt;p&gt;Creating the “right” API requires a comprehensive understanding of the problem the API is meant to solve. Begin with a clear definition of the API’s goals, scope, and purpose, taking into account both developer and end-user perspectives. Involve stakeholders on a regular basis, collect feedback, and adapt the API design to changing requirements. Usability testing and user research can help ensure that the design works as intended.&lt;/p&gt;

&lt;p&gt;In addition to meeting the initial requirements, the API should be versatile enough to be reused in other contexts. Creating an API that meets the criteria is “doing it right,” but the “right” API is one that does so and is flexible enough to be reused. Make sure the API design continues to be the “right” solution over time by revisiting it on a regular basis and making adjustments based on actual usage and evolving demands.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;API design plays an essential role in today’s API-first world. In this article, we’ve gone through numerous API design topics, from the fundamental building blocks to advanced strategies and concepts. The range of questions we’ve answered show how API design is both an art and a science. Whether you’re a developer, a product manager, or a user experience designer, API design knowledge is critical to your success in the software industry today.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Technical review by&lt;/em&gt; &lt;a href="https://blog.postman.com/author/arnaud-lauret/"&gt;&lt;em&gt;Arnaud Lauret&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;The post &lt;a href="https://dev.to/jansche/api-design-interview-questions-1779-temp-slug-7393891"&gt;API design interview questions&lt;/a&gt; appeared first on &lt;a href="https://blog.postman.com"&gt;Postman Blog&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>general</category>
      <category>tutorials</category>
      <category>apidesign</category>
      <category>postman</category>
    </item>
    <item>
      <title>5 ways to set up your Postman team profile for greater success</title>
      <dc:creator>Melinda Gutermuth</dc:creator>
      <pubDate>Wed, 30 Aug 2023 07:31:53 +0000</pubDate>
      <link>https://dev.to/postman/5-ways-to-set-up-your-postman-team-profile-for-greater-success-1okc</link>
      <guid>https://dev.to/postman/5-ways-to-set-up-your-postman-team-profile-for-greater-success-1okc</guid>
      <description>&lt;p&gt;If you’ve been keeping up with the Postman blog, you already know that completing your Postman &lt;a href="https://learning.postman.com/docs/getting-started/installation/postman-profile/"&gt;public profile&lt;/a&gt; is an important step toward &lt;a href="https://dev.to/mjgutermuth/how-to-publish-and-market-your-api-to-maximize-adoption-3pd0-temp-slug-8367263"&gt;maximizing adoption of your API&lt;/a&gt;. A solid, &lt;a href="https://dev.to/mjgutermuth/increase-api-adoption-with-improved-team-profiles-2a2k-temp-slug-6687391"&gt;professional profile&lt;/a&gt; for your &lt;em&gt;team&lt;/em&gt; can put users at ease, giving them confidence that they’ve found the right place and that your APIs are high quality.&lt;/p&gt;

&lt;p&gt;It’s one thing to promote your public APIs when you have a single product. But what if you’re a large &lt;a href="https://www.postman.com/postman-enterprise/"&gt;enterprise&lt;/a&gt; with public APIs that span multiple business units and product lines? How do you set up your teams’ profiles so that your customers can find the API that is relevant to them? Let’s take a look at some examples from the &lt;a href="https://www.postman.com/explore"&gt;Postman Public API Network&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Give your APIs a strong introduction
&lt;/h2&gt;

&lt;p&gt;Esri is known for its geographic information system (GIS) software, solutions, and services. Their products include desktop GIS software such as ArcGIS Pro and ArcMap, as well as web-based GIS solutions such as ArcGIS Online and ArcGIS Enterprise. Their ArcGIS APIs give developers a set of libraries and interfaces that let them work with GIS data and functions and use them in their apps.&lt;/p&gt;

&lt;p&gt;Let’s look at the &lt;a href="https://www.postman.com/esridevs"&gt;Esri team profile&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cRCsNTsx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://blog.postman.com/wp-content/uploads/2023/08/image3-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cRCsNTsx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://blog.postman.com/wp-content/uploads/2023/08/image3-1.png" alt="Esri describes their APIs and pins popular workspaces and collections" width="800" height="662"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Esri describes their APIs and pins popular workspaces and collections&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Here’s how Esri’s team profile is set up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Uses rich Markdown to introduce and highlight their ArcGIS APIs&lt;/li&gt;
&lt;li&gt;Highlights two of their workspaces as well as two of their most popular collections&lt;/li&gt;
&lt;li&gt;Includes links to their Twitter, GitHub, and &lt;a href="https://developers.arcgis.com/documentation/"&gt;developer documentation&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esri has made it easy for users to find their public APIs by pinning these elements to their team profile, and on top of that, they’re also giving them direction so they know where to start.&lt;/p&gt;

&lt;h2&gt;
  
  
  Highlight your brands
&lt;/h2&gt;

&lt;p&gt;Meta contains a handful of major social media and networking brands, including WhatsApp, Facebook, Instagram, and many others. WhatsApp is a messaging app that allows users to talk, text, and create group chats with end-to-end encryption and no international call fees, while WhatsApp for Business is designed for businesses to communicate securely with their customers. Facebook allows users to share updates, photos, videos, and other content with their friends. Instagram allows users to upload and share photos and videos, apply filters and editing tools, and add captions and hashtags. On Meta’s Postman profile, each of these brands has a public API.&lt;/p&gt;

&lt;p&gt;Let’s check out the &lt;a href="https://www.postman.com/meta"&gt;Meta team profile&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sdFPPx6L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://blog.postman.com/wp-content/uploads/2023/08/image5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sdFPPx6L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://blog.postman.com/wp-content/uploads/2023/08/image5.png" alt="Meta created a workspace for each of their brands" width="800" height="691"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Meta created a workspace for each of their brands&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Here’s how Meta’s team profile is set up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Has workspaces that correspond to different brands, including WhatsApp, Facebook, and Instagram&lt;/li&gt;
&lt;li&gt;Organizes each workspace to suit each brand: WhatsApp has separate collections for different use cases, such as WhatsApp for Business, while Facebook and Instagram only need one collection each&lt;/li&gt;
&lt;li&gt;Includes links to their Twitter, GitHub, and &lt;a href="https://developers.facebook.com/"&gt;developer documentation&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Create multiple workspaces for one versatile API
&lt;/h2&gt;

&lt;p&gt;LinkedIn is a site for professionals to connect with each other, build their personal brands, and look for job opportunities. It offers a job search platform, a learning platform, and a content creation platform, among other things. With LinkedIn’s Developer API, you can make apps for custom recruitment and staffing, advertising, and learning management systems.&lt;/p&gt;

&lt;p&gt;Let’s check out the &lt;a href="https://www.postman.com/linkedin-developer-apis"&gt;LinkedIn team profile&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JuYfGynR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://blog.postman.com/wp-content/uploads/2023/08/image6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JuYfGynR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://blog.postman.com/wp-content/uploads/2023/08/image6.png" alt="LinkedIn uses separate workspaces for each function" width="800" height="771"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;LinkedIn uses separate workspaces for each function&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Here’s how LinkedIn’s team profile is set up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provides a strong introduction in the &lt;strong&gt;About&lt;/strong&gt; section&lt;/li&gt;
&lt;li&gt;Has workspaces that correspond to different business areas, like marketing, compliance, and talent solutions, and pins them to their profile&lt;/li&gt;
&lt;li&gt;Includes links to their Twitter, GitHub, and &lt;a href="https://developer.linkedin.com/"&gt;developer documentation&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whether you’re looking to use the LinkedIn Developer API to create a job posting, pull data and insights about your organization’s LinkedIn content, or integrate LinkedIn Learning courses into your own platform, their team profile will help guide the way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Manage a profile for each product platform
&lt;/h2&gt;

&lt;p&gt;Oracle is best known for Oracle Database, but they also have a wide range of enterprise software products, including app development tools, business intelligence tools, enterprise software apps, and cloud services. Their APIs allow developers to develop custom apps that integrate with their databases and also access and manipulate the data that is stored there.&lt;/p&gt;

&lt;p&gt;Oracle has different team profiles on the Postman API Network for different parts of their business. Let’s start by taking a look at the &lt;a href="https://www.postman.com/oracledevs"&gt;Oracle Developers team profile.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ftYrmggm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://blog.postman.com/wp-content/uploads/2023/08/image7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ftYrmggm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://blog.postman.com/wp-content/uploads/2023/08/image7.png" alt="Oracle creates different teams for different business units" width="800" height="595"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Oracle creates different teams for different business units&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Here’s how the Oracle Developers profile is set up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Highlights their most popular workspace, &lt;a href="https://www.postman.com/oracledevs/workspace/oracle-cloud-infrastructure-rest-apis/overview"&gt;Oracle Cloud Infrastructure REST APIs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Pins some popular collections to make it easy to work with their API Gateway API and Anomaly Detection API&lt;/li&gt;
&lt;li&gt;Includes links to their Twitter, GitHub, and &lt;a href="https://developer.oracle.com/"&gt;developer documentation&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Though they have many more public APIs and other public workspaces, their profile gives a good overview of the most-used elements.&lt;/p&gt;

&lt;p&gt;Oracle also has a team profile for their &lt;a href="https://www.postman.com/hospitalityapis"&gt;Oracle Hospitality Integration Platform&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--n_RCLZUc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://blog.postman.com/wp-content/uploads/2023/08/image4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--n_RCLZUc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://blog.postman.com/wp-content/uploads/2023/08/image4.png" alt="Oracle has a separate team profile for their hospitality software platform" width="800" height="656"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Oracle has a separate team profile for their hospitality software platform&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The Oracle Hospitality Integration Platform (OHIP) is a cloud-based integration platform made for the hospitality industry. Their APIs make it easy to connect hospitality systems like property management systems, point-of-sale systems, inventory management systems, and guest loyalty programs in a way that is secure and scalable.&lt;/p&gt;

&lt;p&gt;Here’s how the OHIP team’s profile is set up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Uses a single workspace, &lt;a href="https://www.postman.com/hospitalityapis/workspace/oracle-hospitality-apis/overview"&gt;Oracle Hospitality APIs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Highlights their three most popular collections&lt;/li&gt;
&lt;li&gt;Includes links to their Twitter, GitHub, and &lt;a href="https://www.oracle.com/industries/hospitality/integration-platform/"&gt;developer documentation&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By creating a team profile that’s separate from their main Oracle Developers team, Oracle has made it easier for their hospitality integration platform clients to find the APIs they need. You might also notice that both the OHIP and Oracle Developers team profiles link to the same Oracle profile on &lt;a href="https://github.com/oracle"&gt;GitHub&lt;/a&gt;, but each team has its own developer landing page and Twitter account.&lt;/p&gt;

&lt;p&gt;Oracle also has its &lt;a href="https://www.postman.com/mushop"&gt;MuShop team profile&lt;/a&gt;, one of their open source projects.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qE_wHXmw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://blog.postman.com/wp-content/uploads/2023/08/image2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qE_wHXmw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://blog.postman.com/wp-content/uploads/2023/08/image2.png" alt="Oracle has a separate team profile for their microservices demo project" width="800" height="549"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Oracle has a separate team profile for their microservices demo project&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;MuShop is an example app that shows how you can use Oracle Cloud Infrastructure to create your own cloud-native, microservices-based e-commerce app. Their set of RESTful APIs can be used to access the Oracle MuShop app’s different services and features, such as browsing products, searching for artists and albums, adding products to a cart, checking out, and managing user profiles.&lt;/p&gt;

&lt;p&gt;Here’s how Oracle’s MuShop team profile is set up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Shows off their Catalogue Service API, their MuShop Catalogue Service collection, and their only workspace, &lt;a href="https://www.postman.com/mushop/workspace/mushop-microservices/overview"&gt;MuShop Microservices&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Includes links to their GitHub and &lt;a href="https://oracle-quickstart.github.io/oci-cloudnative/"&gt;developer documentation&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Oracle maintains separate team profiles for different business units within the company. With such a large number and wide variety of APIs, this strategy can help consumers focus their search when they’re looking for the right API for their use case.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use multiple profiles for multiple markets
&lt;/h2&gt;

&lt;p&gt;Cisco is a technology company that makes routers, switches, and other networking equipment, and they offer APIs for all of their networking and communication technology. These APIs let network administrators and developers automate and manage their networks programmatically, as well as connect Cisco’s technology to other systems and services.&lt;/p&gt;

&lt;p&gt;Let’s take a look at the &lt;a href="https://www.postman.com/ciscodevnet"&gt;Cisco DevNet team profile.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SX3OF3_G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://blog.postman.com/wp-content/uploads/2023/08/image1-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SX3OF3_G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://blog.postman.com/wp-content/uploads/2023/08/image1-1.png" alt="Cisco uses separate team profiles for products that reach separate markets" width="800" height="493"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Cisco uses separate team profiles for products that reach separate markets&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Here’s how Cisco has set up their DevNet profile:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Highlights &lt;a href="https://www.postman.com/ciscodevnet/workspace/cisco-devnet-s-public-workspace/overview"&gt;Cisco DevNet’s Public Workspace&lt;/a&gt;, which is a place where people can learn about Cisco’s APIs and find guides&lt;/li&gt;
&lt;li&gt;Pins two of their collections: Cisco SD-WAN-AlwaysOn, which is a part of a software-defined wide area network (SD-WAN) solution that provides secure and scalable office networking, and the Cisco ISE 3.0 ERS REST API, which gives programmatic access to the Cisco ISE network security solution&lt;/li&gt;
&lt;li&gt;Includes links to their Twitter, GitHub, and &lt;a href="https://developer.cisco.com/"&gt;developer documentation&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For its cloud-based solution, Cisco has the &lt;a href="https://www.postman.com/meraki-api"&gt;Cisco Meraki team profile&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LnLK0P7u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://blog.postman.com/wp-content/uploads/2023/08/image8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LnLK0P7u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://blog.postman.com/wp-content/uploads/2023/08/image8.png" alt="Cisco uses a separate team profile for their cloud-based services" width="800" height="491"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Cisco uses a separate team profile for their cloud-based services&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Unlike the primary Cisco product line, Cisco Meraki’s networking solutions can be managed in a cloud-based dashboard. This business unit targets a different type of customer, one who’s  looking for a solution that’s easy to manage using a dashboard interface.&lt;/p&gt;

&lt;p&gt;Here’s how Cisco has set up the Meraki profile:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Highlights &lt;a href="https://www.postman.com/meraki-api/workspace/cisco-meraki-s-public-workspace/overview"&gt;Cisco Meraki’s Public Workspace&lt;/a&gt; along with collections for their dashboard API&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Wrapping it up
&lt;/h2&gt;

&lt;p&gt;These five companies’ products and services cover everything from social networking to networking hardware. Some have many public APIs available, while others might have a single API with a wide range of uses. Like many large companies, they contain different business units that cater to different markets. In each case, these businesses have a wide range of users to serve, and they’ve found a variety of effective ways to reach them.&lt;/p&gt;

&lt;p&gt;Which one do you think will work best for your public APIs? Update &lt;a href="https://devrel.postman.co/settings/team/general"&gt;your team’s public Postman profile&lt;/a&gt; today! Be sure to start strong with a profile image that reflects your brand and complement it with a banner image. If you don’t have permission to edit your profile yourself, be sure to share this post with your team’s Community Manager.&lt;/p&gt;



&lt;p&gt;The post &lt;a href="https://dev.to/loopdelicious/5-ways-to-set-up-your-postman-team-profile-for-greater-success-fm0-temp-slug-4396987"&gt;5 ways to set up your Postman team profile for greater success&lt;/a&gt; appeared first on &lt;a href="https://blog.postman.com"&gt;Postman Blog&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>apinetwork</category>
      <category>postman</category>
      <category>api</category>
      <category>apiprovider</category>
    </item>
    <item>
      <title>Powering home automation with WebSocket APIs</title>
      <dc:creator>Joyce Lin</dc:creator>
      <pubDate>Thu, 06 Jul 2023 15:08:43 +0000</pubDate>
      <link>https://dev.to/postman/powering-home-automation-with-websocket-apis-3mm0</link>
      <guid>https://dev.to/postman/powering-home-automation-with-websocket-apis-3mm0</guid>
      <description>&lt;p&gt;In Part 1 of this series, we learned about the &lt;a href="https://learning.postman.com/docs/sending-requests/websocket/websocket/" rel="noopener noreferrer"&gt;WebSocket&lt;/a&gt; protocol and how to &lt;a href="https://dev.to/mjgutermuth/set-up-a-websockets-server-in-nodejs-ka6-temp-slug-6897606"&gt;set up our own WebSocket server in Node.js&lt;/a&gt;. Next, let’s explore how to use a public WebSocket API to access smart devices around a connected home.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ljbxngbdxrpw1832ug1.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ljbxngbdxrpw1832ug1.jpg" alt="Illustration of home iot devices"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  REST and WebSockets for a connected home
&lt;/h2&gt;

&lt;p&gt;When it comes to transmitting data in a connected home environment, both &lt;a href="https://dev.to/jansche/what-is-a-rest-api-examples-uses-and-challenges-8k3-temp-slug-6487224"&gt;REST&lt;/a&gt; and WebSockets are commonly used protocols, but they have different characteristics and use cases.&lt;/p&gt;

&lt;p&gt;REST follows a request-response pattern, where a client sends a request to a server, and the server responds with the requested data. This is useful for accessing and controlling smart devices and services, and works well for scenarios where data updates are not required in real-time. For example, you could use a REST API to turn on a smart light.&lt;/p&gt;

&lt;p&gt;On the other hand, WebSockets enables bidirectional communication between a client and server, enabling real-time data transmission. This is useful for applications that require continuous data updates, such as real-time monitoring of sensor data and displaying live dashboards. For example, you could use a WebSocket API to continuously monitor the temperature in a room over a persistent connection.&lt;/p&gt;

&lt;p&gt;In the next section, let’s take a look at a popular home automation platform that provides both REST and WebSocket APIs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Home Assistant for home automation
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.home-assistant.io/" rel="noopener noreferrer"&gt;Home Assistant&lt;/a&gt; is a popular open-source home automation platform that lets you control and monitor smart devices from different brands using a unified interface. Instead of using separate applications to control the kitchen lights, thermostat, and other connected devices all manufactured by different producers, you can manage almost everything from a single Home Assistant web dashboard running on a Raspberry Pi or other dedicated server within your local network.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.postman.com%2Fwp-content%2Fuploads%2F2023%2F06%2Fimage1-3-1000x613.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.postman.com%2Fwp-content%2Fuploads%2F2023%2F06%2Fimage1-3-1000x613.png" alt="Home Assistant progressive web application running at http://homeassistant.local:8123"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Home Assistant progressive web application running at &lt;a href="http://homeassistant.local:8123" rel="noopener noreferrer"&gt;http://homeassistant.local:8123&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Home Assistant is ideal for DIY smart-home tinkerers because it supports a wide range of integrations and protocols, allowing you to customize automation scenarios based on events, schedules, and sensor readings.&lt;/p&gt;

&lt;p&gt;Next, let’s take a look at Home Assistant’s WebSocket API.&lt;/p&gt;
&lt;h2&gt;
  
  
  Home Assistant WebSocket API
&lt;/h2&gt;

&lt;p&gt;In addition to a &lt;a href="https://developers.home-assistant.io/docs/api/rest/" rel="noopener noreferrer"&gt;REST API&lt;/a&gt;&lt;a href="https://blog.postman.com/rest-api-examples" rel="noopener noreferrer"&gt;,&lt;/a&gt; Home Assistant also contains a &lt;a href="https://developers.home-assistant.io/docs/api/websocket" rel="noopener noreferrer"&gt; WebSocket API&lt;/a&gt; to stream information. To learn how to authenticate the WebSockets connection and send saved messages to the Home Assistant server, follow along with this &lt;a href="https://quickstarts.postman.com/guide/home-assistant/index.html?index=..%2F..index#0" rel="noopener noreferrer"&gt;step-by-step tutorial&lt;/a&gt;, watch the &lt;a href="https://youtu.be/Qk9A0QbG5-I" rel="noopener noreferrer"&gt;video&lt;/a&gt;, and reference &lt;a href="https://www.postman.com/postman/workspace/program-smart-lights/collection/6481ed9afe7f1bdfaa732408" rel="noopener noreferrer"&gt;the sample collection&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Qk9A0QbG5-I"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Using a long-lived token, you can use Postman to establish a connection with our Home Assistant server running locally, and then send and receive messages using the WebSocket API.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.postman.com%2Fwp-content%2Fuploads%2F2023%2F06%2Fimage2-3-1000x648.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.postman.com%2Fwp-content%2Fuploads%2F2023%2F06%2Fimage2-3-1000x648.png" alt="Saved messages to replay common scenarios"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Receive a stream of information when the state changes on any device connected to Home Assistant&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You can also configure your own &lt;strong&gt;Saved Messages&lt;/strong&gt; to create your own customized themes and sequences.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.postman.com%2Fwp-content%2Fuploads%2F2023%2F06%2Fimage3-1-1000x734.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.postman.com%2Fwp-content%2Fuploads%2F2023%2F06%2Fimage3-1-1000x734.png" alt="Saved messages to replay common scenarios"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Saved messages to replay common scenarios&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Home Assistant also provides a &lt;a href="https://developers.home-assistant.io/docs/api/rest" rel="noopener noreferrer"&gt;REST API&lt;/a&gt;. Explore Home Assistant’s WebSocket and REST APIs side-by-side in Postman to better understand the differences between the two protocols.&lt;/p&gt;

&lt;h2&gt;
  
  
  Additional resources
&lt;/h2&gt;

&lt;p&gt;You can work in Postman using different API patterns and protocols. Check out these Postman resources to learn more about WebSockets:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.postman.com/postman/workspace/websockets/documentation/14057978-712d684f-c252-4bd9-a7a6-6a893e41adea" rel="noopener noreferrer"&gt;Guide to Postman WebSockets&lt;/a&gt; collection&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://learning.postman.com/docs/sending-requests/websocket/websocket/" rel="noopener noreferrer"&gt;Using WebSocket requests&lt;/a&gt; docs&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://youtu.be/H-7EZVj9D-k" rel="noopener noreferrer"&gt;WebSocket requests&lt;/a&gt; video&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Browse the &lt;a href="https://www.postman.com/postman/workspace/program-smart-lights/overview" rel="noopener noreferrer"&gt;Program smart lights&lt;/a&gt; public workspace for APIs from other providers, such as Philips Hue and Elgato, to automatically control smart lights in your home or office. And let us know in the comments below what kind of projects you want to learn about, and what you’re doing with WebSockets.&lt;/p&gt;



&lt;p&gt;The post &lt;a href="https://dev.to/jansche/powering-home-automation-with-websocket-apis-3k15-temp-slug-8844498"&gt;Powering home automation with WebSocket APIs&lt;/a&gt; appeared first on &lt;a href="https://blog.postman.com" rel="noopener noreferrer"&gt;Postman Blog&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>editorspicks</category>
      <category>general</category>
      <category>automation</category>
      <category>iot</category>
    </item>
    <item>
      <title>Create a REST API with PHP and Laravel</title>
      <dc:creator>Greg Bulmash 🥑</dc:creator>
      <pubDate>Tue, 06 Jun 2023 18:39:01 +0000</pubDate>
      <link>https://dev.to/postman/create-a-rest-api-with-php-and-laravel-2gcb</link>
      <guid>https://dev.to/postman/create-a-rest-api-with-php-and-laravel-2gcb</guid>
      <description>&lt;p&gt;PHP came out in 1995, just three weeks after Java. Today, both remain in the top ten most popular languages. With PHP’s general ease of use, options for &lt;em&gt;how&lt;/em&gt; to use it abound. Yet, not every PHP tutorial is created equally. That’s why we put together this beginner-friendly &lt;a href="https://quickstarts.postman.com/guide/php-laravel-API/index.html?index=..%2F..index#0" rel="noopener noreferrer"&gt;Postman Quickstarts tutorial&lt;/a&gt; on building a REST API with PHP. We’re using what we think is a straightforward framework for this purpose: Laravel. &lt;/p&gt;

&lt;p&gt;Laravel is a popular PHP web app framework that comes with a variety of built-in tools and features for building APIs. In this tutorial, we will be creating a simple API that allows users to add and retrieve data. &lt;/p&gt;

&lt;h2&gt;
  
  
  Before we get started…
&lt;/h2&gt;

&lt;p&gt;Double check that you’re ready to write in PHP. Only a basic familiarity is needed for this tutorial, and PHP has a notoriously flat learning curve for new users—we encourage you to try at any skill level. &lt;/p&gt;

&lt;p&gt;Next, confirm that the following are installed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://git-scm.com/downloads" rel="noopener noreferrer"&gt;Git&lt;/a&gt; (Required)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.php.net/manual/en/install.php" rel="noopener noreferrer"&gt;PHP&lt;/a&gt; (Required)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://getcomposer.org/download/" rel="noopener noreferrer"&gt;Composer&lt;/a&gt; (Required)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://brew.sh/" rel="noopener noreferrer"&gt;Homebrew&lt;/a&gt; (only for Mac)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you want step by step instructions for installing any of the above, refer to the &lt;a href="https://quickstarts.postman.com/guide/php-laravel-API/index.html?index=..%2F..index#1" rel="noopener noreferrer"&gt;full Laravel API quickstart guide at Postman.&lt;/a&gt; Plus, you’ll also want to open up your favorite code editor. Now, let’s get started!&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Start your Laravel project
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Scaffold your Laravel project
&lt;/h3&gt;

&lt;p&gt;Before we can write any code, we need to scaffold a &lt;a href="https://laravel.com/" rel="noopener noreferrer"&gt;Laravel&lt;/a&gt; project. Thanks to Composer, this is relatively simple. Open a terminal and navigate to the directory where this project will live. Enter the following command in the terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;composer create-project laravel/laravel laravel_project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This could take some time. There are tens of megabytes to download and install.&lt;/p&gt;

&lt;p&gt;When it's finished, you will have a project folder named &lt;code&gt;laravel_project&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Give it a test
&lt;/h3&gt;

&lt;p&gt;Navigate into the &lt;code&gt;laravel_project&lt;/code&gt; folder and enter the following command in the terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;php artisan serve &lt;span class="nt"&gt;--port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;8080
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will launch your project at &lt;code&gt;http://localhost:8080&lt;/code&gt;. Change the port to something else if you already have a process using the port. When it's running, visit the URL. It will return this homepage.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fht9rshg7k6npbrggr44q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fht9rshg7k6npbrggr44q.png" alt="Default Laravel project homepage" width="800" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note down in the bottom right, you'll see the Laravel and PHP version numbers. If you're looking for tutorials, finding ones for Laravel and PHP that are as close to those versions as possible will help minimize problems.&lt;/p&gt;

&lt;p&gt;Let's move on to adding an API.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Build an API
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Create the route
&lt;/h3&gt;

&lt;p&gt;This will create a public API with no authentication.&lt;/p&gt;

&lt;p&gt;Open &lt;code&gt;routes/api.php&lt;/code&gt; in your Laravel project directory in your editor. Add the following code at the end:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nc"&gt;Route&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'/hello'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;"Hello World!"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This adds the &lt;code&gt;/api/hello&lt;/code&gt; endpoint and returns "Hello World" in plain text to a GET request.&lt;/p&gt;

&lt;p&gt;Note how the endpoint was prefixed with &lt;code&gt;/api&lt;/code&gt; by Laravel.&lt;/p&gt;

&lt;p&gt;Next, let's call this endpoint in Postman.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Try your first endpoint
&lt;/h2&gt;

&lt;p&gt;To test this in Postman, open your personal workspace and start a collection. Name it "Laravel QuickStart" or something else you prefer.&lt;/p&gt;

&lt;p&gt;Once it's created, select &lt;strong&gt;Add a request&lt;/strong&gt; to get started.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flswkr57s1gma4z2qmhs3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flswkr57s1gma4z2qmhs3.png" alt="Adding a request to your Postman collection" width="800" height="326"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Set the request URL to &lt;code&gt;localhost:8080/api/hello&lt;/code&gt; and make sure your Postman Desktop Agent app is running on your machine to prevent any CORS issues while testing locally.&lt;/p&gt;

&lt;p&gt;Select &lt;strong&gt;Send&lt;/strong&gt; and the response section below the request section will show a response of &lt;code&gt;Hello World!&lt;/code&gt; in plain text with a &lt;code&gt;200 OK&lt;/code&gt; response code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd3ifg83dzgkbjffff1wt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd3ifg83dzgkbjffff1wt.png" alt="The result" width="800" height="637"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Congratulations. You created your first API endpoint in Laravel and successfully called it with Postman.&lt;/p&gt;

&lt;p&gt;Next, let's make a simple POST endpoint for fun.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Add a POST endpoint
&lt;/h2&gt;

&lt;p&gt;Go back to your &lt;code&gt;routes/api.php&lt;/code&gt; file and add the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nc"&gt;Route&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'/reverse-me'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;Request&lt;/span&gt; &lt;span class="nv"&gt;$request&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nv"&gt;$reversed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;strrev&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$request&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'reverse_this'&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$reversed&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This adds a POST route for the endpoint &lt;code&gt;api/reverse-me&lt;/code&gt;. It will reverse a string you pass in the body of the post with the parameter name &lt;code&gt;reverse_this&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Let's try this in the next section.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Try your POST endpoint
&lt;/h2&gt;

&lt;p&gt;Return to your Laravel QuickStart collection in Postman and add a request. Name it "Reverse" and follow these steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set the request type to &lt;code&gt;POST&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Set the endpoint to &lt;code&gt;localhost:8080/api/reverse-me&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Select the &lt;strong&gt;Body&lt;/strong&gt; tab.&lt;/li&gt;
&lt;li&gt;In the top dropdown menu in the tab, select &lt;strong&gt;x-www-form-urlencoded&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Add a parameter of &lt;code&gt;reverse_this&lt;/code&gt; with the value of &lt;code&gt;esrever&lt;/code&gt;. That's "reverse" already reversed so the return value will be easy to read.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Send&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkxq353c3t0fdwvler6wu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkxq353c3t0fdwvler6wu.png" alt="Result of reversing esrever" width="800" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The API will return the string reverse in plain text. Congratulations! You’ve created a REST API with PHP and Laravel.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;In this blog post, we explored how to create a simple PHP-based API with the Laravel framework. We created both GET and POST API endpoints and used Postman to test those endpoints. By following this tutorial, you should now have a solid understanding of how to create a basic API with Laravel and how to test it using Postman. &lt;/p&gt;

&lt;h2&gt;
  
  
  Going further…
&lt;/h2&gt;

&lt;p&gt;If you want to deepen your knowledge of Laravel and Postman, try these exercises: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dive into the &lt;a href="https://laravel.com/docs/10.x/" rel="noopener noreferrer"&gt;Laravel 10.x documentation&lt;/a&gt; to add a controller for handling more complex requests and/or add a model to connect a database.&lt;/li&gt;
&lt;li&gt;Review the &lt;a href="https://laravel.com/docs/10.x/errors" rel="noopener noreferrer"&gt;Laravel 10.x error handling documentation&lt;/a&gt; to learn best practices for error-handling in Laravel, such as what might happen if someone submitted a binary file instead of a string to your string-reversing endpoint.&lt;/li&gt;
&lt;li&gt;Explore the &lt;a href="https://learning.postman.com/docs/writing-scripts/test-scripts/" rel="noopener noreferrer"&gt;Postman testing documentation&lt;/a&gt; and write a test on the POST request to make sure the reverse_this string is being reversed properly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check out &lt;a href="https://quickstarts.postman.com" rel="noopener noreferrer"&gt;Postman Quickstarts&lt;/a&gt; for more step-by-step guides like this one. If you’d like to contribute your own, head over to the &lt;a href="https://github.com/loopDelicious/pmquickstarts" rel="noopener noreferrer"&gt;Postman Quickstarts repo&lt;/a&gt; on GitHub.&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>php</category>
      <category>api</category>
      <category>postman</category>
    </item>
    <item>
      <title>Build a successful API by understanding user personas</title>
      <dc:creator>Jan Schenk (he/him)</dc:creator>
      <pubDate>Tue, 16 May 2023 16:16:41 +0000</pubDate>
      <link>https://dev.to/postman/build-a-successful-api-by-understanding-user-personas-2d8l</link>
      <guid>https://dev.to/postman/build-a-successful-api-by-understanding-user-personas-2d8l</guid>
      <description>&lt;p&gt;This article has been written by &lt;a href="https://blog.postman.com/author/bruno-pedro/" rel="noopener noreferrer"&gt;Bruno Pedro&lt;/a&gt; on the &lt;a href="https://blog.postman.com" rel="noopener noreferrer"&gt;Postman Blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/postman-open-technologies/knowledge-base" rel="noopener noreferrer"&gt;Postman Open Technologies Knowledge Base&lt;/a&gt; is a new project with the goal of providing insights from a vast amount of information about APIs available on the internet. One of the project’s objectives is to provide an API that consumers can use to retrieve information from the Knowledge Base. The result? As part of my work on the &lt;a href="https://learning.postman.com/open-technologies/" rel="noopener noreferrer"&gt;Postman Open Technologies team&lt;/a&gt;, I have been building the Knowledge Base API.&lt;/p&gt;

&lt;p&gt;I’ve naturally started by following our Postman team’s internal API Design Playbook. The playbook is a series of steps that help anyone building an API come up with a solution that meets the needs of consumers. (Stay tuned for when I make this publicly available!) The API design steps covered by the playbook are strategy, definition, validation, and finally, specification. I started the design of the Knowledge Base API with the strategy step, where the goal is to document &lt;em&gt;why&lt;/em&gt; the API should be built. The output of the strategy step consists of findings and evidence that back the importance of building the API.&lt;/p&gt;

&lt;p&gt;Finding evidence that the API should be built can be done by understanding and analyzing potential consumers. And that’s precisely what I have done: I have identified the user personas that can benefit from using the Knowledge Base API:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Technical researchers&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;API designers&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Product managers&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Technical architects&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How do you identify user personas for an API?
&lt;/h2&gt;

&lt;p&gt;To identify the four user personas, I engaged with people from each of the categories in a series of interviews. I wanted to understand what their work was like and what challenges they were facing. I also wanted to validate my initial hypothesis that they would be interested in the Knowledge Base API I was designing. Not only was I able to confirm most of my assumptions, but I also enriched the information I had with feature requests. So, for example, a product manager revealed that it would be interesting to get information about API design trends. A researcher gave importance to knowing the provenance of the data used in the Knowledge Base.&lt;/p&gt;

&lt;p&gt;I then used the information from the interviews to create my catalog of user personas. For each user persona, I have identified their jobs-to-be-done (JTBD), the tools and services they use, their work-related challenges, the benefits they would get from using the Knowledge Base, and their potential behaviors when using the API. These attributes helped refine the user personas and will help me design the different elements of the API once I get to that stage.&lt;/p&gt;

&lt;p&gt;At this point, it’s worth remembering that user personas are fictional characters representing a specific type of person who will be using the API. Each persona has unique characteristics, such as JTBD, benefits, behaviors, and challenges. For example, a technical researcher may be interested in using an API to gather data for academic research. In contrast, product managers may be looking for an API that helps them analyze customer behavior and preferences. The important thing is that you’re able to identify a cohort of users with each of the personas.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits of knowing your audience from the start
&lt;/h2&gt;

&lt;p&gt;Let’s get back to my journey designing the Knowledge Base API. With all the user personas identified and documented, I could then start focusing on defining other attributes of the API. By knowing the tools each persona uses, I was able to identify the best architectural style for the API. With the benefits documented for each persona, I could define the API capabilities. JTBDs and behaviors helped me identify the API resources and operations. Altogether, the different attributes of user personas can continuously inform how I design an API that reflects what potential consumers need. And that is critical to making an API successful.&lt;/p&gt;

&lt;p&gt;In summary, APIs explicitly designed for targeted users are more likely to be adopted. Those APIs directly address the real-world problems or goals of users. Aligning APIs with user personas’ needs and behaviors from the start will yield better outcomes than assuming what is best and hoping that users will engage.&lt;/p&gt;



&lt;p&gt;The post &lt;a href="https://blog.postman.com/build-successful-api-by-understanding-user-personas/" rel="noopener noreferrer"&gt;Build a successful API by understanding user personas&lt;/a&gt; appeared first on the &lt;a href="https://blog.postman.com" rel="noopener noreferrer"&gt;Postman Blog&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>tutorials</category>
      <category>apidevelopment</category>
      <category>apifirst</category>
    </item>
    <item>
      <title>10 reasons why you have to exceed at documenting</title>
      <dc:creator>Jan Schenk (he/him)</dc:creator>
      <pubDate>Wed, 10 May 2023 07:18:32 +0000</pubDate>
      <link>https://dev.to/postman/10-reasons-why-you-have-to-exceed-at-documenting-4b7m</link>
      <guid>https://dev.to/postman/10-reasons-why-you-have-to-exceed-at-documenting-4b7m</guid>
      <description>&lt;p&gt;I’m leading Postman’s Open Technologies Program Office — our &lt;a href="https://www.postman.com/company/open-philosophy/" rel="noopener noreferrer"&gt;open source&lt;/a&gt; program office (OSPO). My team consists mainly of open source contributors, and our parent org, &lt;a href="https://learning.postman.com/open-technologies/" rel="noopener noreferrer"&gt;Postman Open Technologies&lt;/a&gt;, is an incubator for API tech and a strategy think tank. There’s a bunch of high-profile industry experts that I work with and for, and I’m constantly switching between impostor syndrome and delusions of grandeur to change the world.&lt;/p&gt;

&lt;p&gt;At a recent Postman Open Technologies team meeting, I gave a very general direction in saying that we have to be the team that is known for documentation and that we need to document everything individually as well as in a team effort. While there was more context, like our collaboration with the product teams, it is also a general recommendation that I give to myself as well as others in our industry — especially in these fields of work: engineering, OSPOs, and developer relations.&lt;/p&gt;

&lt;p&gt;But first, let’s define the term “documentation.” In the context of this blog post, documentation includes external as well as internal technical documentation, blogging, sharing knowledge on social networks, demos, how-to articles, instructions, conference sessions, webinars, podcasts, wikis, infographics, flow charts, and the like.&lt;/p&gt;

&lt;p&gt;I understand how easy it is to get lost in responsibilities in today’s fast-paced world. But while you won’t be immediately rewarded for writing documentation like you are for writing code, setting up a process, or resolving an issue, creating &lt;a href="https://documenter.getpostman.com/view/1559645/TVYGbHs1" rel="noopener noreferrer"&gt;good documentation&lt;/a&gt; is about showing compassion to those around you as well as your future self. Its impact is mid- and long term, but needs prioritization now.&lt;/p&gt;

&lt;h2&gt;
  
  
  My top 10 reasons why being great at documentation is key to success
&lt;/h2&gt;

&lt;p&gt;You should be known as the person who exceeds at documenting because:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Documenting makes you a better coworker and collaborator.&lt;/strong&gt; Creating good documentation reduces frustration, lowers the level of collaboration anxiety, and makes previous decisions more understandable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Documenting increases your value.&lt;/strong&gt; It increases your value as a professional and makes you less expendable. Letting go of a person or a team that built a good part of the internal knowledge hurts. Hiring someone who is known for building persisting knowledge is easier to justify.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Documenting helps build your personal brand.&lt;/strong&gt; Coming across the same author name over and over again when doing research makes you a subject expert. Add on top a few more measures,—like community engagement, mentoring, public speaking, whatever you choose—will greatly help your brand.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Documenting builds internal visibility.&lt;/strong&gt; Being able to refer to something that you’ve written is easier than vaguely repeating what you have said or commented on a team meeting. Colleagues are more likely to give credit if it’s easy to do.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;You can slice and dice into content creation.&lt;/strong&gt; Once you’ve started documenting things, you can slice and dice it for content creation. Producing a video, writing a podcast narrative, preparing a talk, or inviting people with similar or differing opinions to a panel is way easier than starting from scratch. It also helps you find a red thread for your &lt;em&gt;storytelling&lt;/em&gt;, which is another item on this list.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Documenting helps internalize your knowledge. And identify caveats.&lt;/strong&gt; Repetition, that’s how the human brain works. Writing something down is exactly this. When your fingers are slower at typing than your brain is at processing information, you’re forcing it to repeat the same thing over and over again. That helps you either internalize findings or helps you find catches and bugs in your thinking.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Documenting makes your knowledge persist.&lt;/strong&gt; The most obvious one, but also the most ignored point on my list. Have you ever come across a written piece and thought, &lt;em&gt;Hey, that’s good knowledge, I’m glad someone else wrote it down!&lt;/em&gt; only to realize it was you two years ago? We forget, and that’s even part of our learning process. Storing information is not only something you do for others but also for yourself. And even if you don’t regularly update your content, it will be useful for a certain amount of time and maybe even beyond. (Disclaimer: This is not a good excuse for not keeping your documentation up to date!)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Documenting saves time.&lt;/strong&gt; Were you assuming the opposite, that writing documentation eats up a lot of time? Have you ever felt like repeating yourself? That’s probably because you did. When you write documentation it saves you from the tedious work of repeatedly explaining to others. When you’re spending the third time explaining something, your time would have been better spent writing it down. You could still have that discussion with your peer, but you’d have it on a different level.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Documenting helps avoid the awkwardness of having to ask.&lt;/strong&gt; It’s not only you feeling bored about explaining the same old thing a third time this week. It’s also them feeling bad about wasting your time. Coworkers might hold back from asking you because they feel your time is too precious. This hinders collaboration.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Documenting makes you better at storytelling.&lt;/strong&gt; The bigger picture is something that you will be asked for. Being able to not only provide facts and figures but also develop a narrative and make the numbers stick to someone’s mind is priceless.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It’s important to note that while I say “good documentation,” I don’t ask for “excellent” or “outstanding.” That’s not because I think that nothing will ever be perfect; it’s because documentation doesn’t always have to be pristine. Often enough, “average documentation” does the job and is a legit compromise between effort and benefit.&lt;/p&gt;

&lt;p&gt;Whenever you consider prioritizing documentation, which includes internal as well as external content creation, you definitely should always answer: “Yes, I will.”&lt;/p&gt;



&lt;p&gt;The post &lt;a href="https://dev.to/sahuvikramp/10-reasons-why-you-have-to-exceed-at-documenting-2bn5-temp-slug-110928"&gt;10 reasons why you have to exceed at documenting&lt;/a&gt; appeared first on &lt;a href="https://blog.postman.com" rel="noopener noreferrer"&gt;Postman Blog&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>postman</category>
      <category>beginners</category>
      <category>career</category>
    </item>
    <item>
      <title>Your Shortcut to Becoming a Contributor in Google Summer of Code</title>
      <dc:creator>Jan Schenk (he/him)</dc:creator>
      <pubDate>Thu, 23 Mar 2023 07:48:30 +0000</pubDate>
      <link>https://dev.to/postman/your-shortcut-to-becoming-a-contributor-in-google-summer-of-code-4dji</link>
      <guid>https://dev.to/postman/your-shortcut-to-becoming-a-contributor-in-google-summer-of-code-4dji</guid>
      <description>&lt;p&gt;Here's a shortcut to your participation in Google Summer of Code. Or is it? The following points are the absolute must-have-dones for a successful application. And yes, please do apply. All former participants that I have talked to say it has been more than worth their time. &lt;/p&gt;

&lt;p&gt;📖 Take 20 minutes to read into GSoC. What it is and terms and conditions. You don't need to know every detail, but you should have a basic understanding of how it works. &lt;br&gt;
&lt;a href="https://summerofcode.withgoogle.com/" rel="noopener noreferrer"&gt;https://summerofcode.withgoogle.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📁 Check out our suggestions for projects. If you don't find anything in there, don't give up. Browse other organisations. Open Source needs you, no matter where you eventually find your sweet spot. But we at Postman are definitely the best place for APIs. &lt;a href="https://github.com/postman-open-technologies/gsoc-2023/issues" rel="noopener noreferrer"&gt;https://github.com/postman-open-technologies/gsoc-2023/issues&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🎙️ Get in touch with a mentor on the project(s) of your choice. You can only apply to 3 projects, so you better know who you are committing to work with. How to find a mentor? Identify them on the issues and dedicated repos, and hit them up here or on the projects' channels (could be Slack or Discord or a forum. You will learn this from the issue/repo). Ask them if they think your skillset matches the project.&lt;/p&gt;

&lt;p&gt;🧪 Try yourself out. There will be micro-tasks and first issues on the repo. This will help you make your first steps in Open Source as well as understand if this project is a fit for you. &lt;/p&gt;

&lt;p&gt;🪪 Register and apply on the &lt;a href="https://summerofcode.withgoogle.com/register/contributor" rel="noopener noreferrer"&gt;GSoC website&lt;/a&gt;. You can modify your application until April 4. Don't worry if you don't have all the details ready yet. But start with something that doesn't make mentors ignore your submission (like only uploading a CV instead of an application pdf, or skipping on the details of your proposal). Expect 1h and likely more for this step. But the earlier you get to actually submitting your proposal, the better, as it creates better visibility.&lt;/p&gt;

&lt;p&gt;👷 Continue to update your application, and stay in touch with the mentors. Engagement in the existing community is key.&lt;/p&gt;

&lt;p&gt;🏆 You got this! 🏆&lt;/p&gt;

</description>
      <category>postman</category>
      <category>opensource</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Boosting Your Personal Productivity - Life Hacks</title>
      <dc:creator>Jan Schenk (he/him)</dc:creator>
      <pubDate>Tue, 21 Mar 2023 10:49:20 +0000</pubDate>
      <link>https://dev.to/postman/boosting-your-personal-productivity-life-hacks-2393</link>
      <guid>https://dev.to/postman/boosting-your-personal-productivity-life-hacks-2393</guid>
      <description>&lt;p&gt;I asked my Postman colleagues what their secrets to an efficient and productive day are. Here’s their tips on how to increase your productivity. Not everyone is the same, so some things may work for you while others won’t. That’s ok. You do yours.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://betterhumans.pub/the-shultz-hour-how-60-minutes-per-week-can-yield-tremendous-returns-all-week-7efa96d87103" rel="noopener noreferrer"&gt;The Shultz Hour&lt;/a&gt; - Reserving one hour per week to zone out in a controlled manner.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://juliacameronlive.com/basic-tools/morning-pages/" rel="noopener noreferrer"&gt;Morning Pages&lt;/a&gt; - Habit of writing down your stream of consciousness first thing in the morning.&lt;/p&gt;

&lt;p&gt;Calendar blockers for catching up with Slack, email. But also for lunch. And more. &lt;/p&gt;

&lt;p&gt;Focus time playlists - using specific music to get into the flow. Many music streaming platforms have them  under the name of e.g. Deep Focus (&lt;a href="https://open.spotify.com/playlist/37i9dQZF1DWZeKCadgRdKQ" rel="noopener noreferrer"&gt;Spotify&lt;/a&gt;), Pure Focus (&lt;a href="https://music.apple.com/us/playlist/pure-focus/pl.dbd712beded846dca273d5d3259d28aa" rel="noopener noreferrer"&gt;Apple Music&lt;/a&gt;), White Noise (different &lt;a href="https://en.wikipedia.org/wiki/Colors_of_noise" rel="noopener noreferrer"&gt;noise colors&lt;/a&gt; work for different kinds of people) or similar.&lt;/p&gt;

&lt;p&gt;Calendar Bot/AI - look into &lt;a href="https://reclaim.io" rel="noopener noreferrer"&gt;reclaim.io&lt;/a&gt; Geekbot - an assistant on Slack to manage your day and keep track of what you do. Can integrate with your calendar.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://geekbot.com/" rel="noopener noreferrer"&gt;Geekbot&lt;/a&gt; - an assistant on Slack to manage your day and keep track of what you do. Can integrate with your calendar.&lt;/p&gt;

&lt;p&gt;Physical barriers - One colleague mentioned uninstalling Slack from the laptop and only have it on their iPad that is on another table. Other barriers can include: No meetings on the laptop. Chatting and doing calls happen on a separate place. What a bold move! &lt;/p&gt;

&lt;p&gt;Work equipment - A good keyboard and mouse (or trackpad, graphic tablet, other pointer device) can enhance your productivity quite a bit. So does a good ergonomic chair. Also habits: Coding, writing, or any focus work happen with a proper chair and table.&lt;/p&gt;

&lt;p&gt;Habits - Another colleague mentioned that a morning routine only gets them started. And for them that even includes a game of &lt;a href="https://lichess.org/" rel="noopener noreferrer"&gt;chess&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Running - Lots of folks mentioned that integrating running into their weekly (or daily) schedule improved their stress level and helped them balance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.psychologytoday.com/us/blog/the-athletes-way/201607/peripatetic-meetings-promote-health-and-creative-thinking" rel="noopener noreferrer"&gt;Peripatetic meetings&lt;/a&gt; - Take a walk while you meet. This doesn’t require the physical presence of your meeting partner(s). But it helps making it clear to them that you do this. &lt;/p&gt;

&lt;p&gt;Self-awareness - Finding out how often you pick up your phone during the hours that you thought you’d be focused helps you learn about yourself. Same is true for screen time and received notifications. For me it was 41 pickups, 1h 46m screen time and 116 notifications. Today, at 11:30am.&lt;/p&gt;

&lt;p&gt;Try out what works for you and let us know here. Or share your own productivity hacks in the comments.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>programming</category>
      <category>career</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Join Postman for Google Summer of Code</title>
      <dc:creator>Jan Schenk (he/him)</dc:creator>
      <pubDate>Thu, 02 Mar 2023 11:50:21 +0000</pubDate>
      <link>https://dev.to/postman/join-postman-for-google-summer-of-code-6jk</link>
      <guid>https://dev.to/postman/join-postman-for-google-summer-of-code-6jk</guid>
      <description>&lt;h2&gt;
  
  
  To all folks new to Open Source but interested in APIs:
&lt;/h2&gt;

&lt;p&gt;Google Summer of Code is around the corner and Postman was able to join the group of mentoring orgs. This means we're offering a bunch of projects from OpenAPI, JSON Schema, AsyncAPI and Collection Format to work on as a newcomer to Open Source. Never contributed before? This is for you. You're an eager learner in the field of API technologies? Come join us. You want to contribute to the awesome work API Specifications are doing every day? Hello!&lt;/p&gt;

&lt;p&gt;Google Summer of Code, GSoC, is an established summer school for people new to contributing to Open Source. You don't have to be a student to participate. Your commitment is to spend 175 or 350 hours (depending on the project you choose) coding to extend an existing Open Source project. There's suggestions on what to develop from all kinds of organisations, but of course, &lt;a href="https://postman.com/open-technologies" rel="noopener noreferrer"&gt;Postman&lt;/a&gt; is the coolest to choose. Why? Because we care for APIs, which are the underpinning of all the tech out there. If you understand the API lifecyle and its impact in our modern world, you can literally work everywhere.&lt;/p&gt;

&lt;p&gt;So throw your summer plans overboard, and apply for a GSoC contributor in 2023. We'd love to work with you. &lt;/p&gt;

&lt;h2&gt;
  
  
  There's only two things you need to know and do until March 20, 2023
&lt;/h2&gt;

&lt;p&gt;1) Move over to &lt;a href="https://summerofcode.withgoogle.com/" rel="noopener noreferrer"&gt;https://summerofcode.withgoogle.com/&lt;/a&gt; and learn about the program. If you're accepted, you'll earn $$ for contributing to Open Source. How cool is that.&lt;/p&gt;

&lt;p&gt;2) Visit &lt;a href="https://github.com/postman-open-technologies/gsoc-2023" rel="noopener noreferrer"&gt;https://github.com/postman-open-technologies/gsoc-2023&lt;/a&gt;, choose from our list of projects and show us that you can be that awesome contributor you always wanted to be.&lt;/p&gt;

&lt;h2&gt;
  
  
  Don't wait too long!
&lt;/h2&gt;

&lt;p&gt;We're looking forward to seeing you drop into our repos issues. (Hint: that's GitHub slang for visiting our &lt;a href="https://github.com/postman-open-technologies/gsoc-2023" rel="noopener noreferrer"&gt;repositories&lt;/a&gt;, heading over to the &lt;a href="https://github.com/postman-open-technologies/gsoc-2023/issues" rel="noopener noreferrer"&gt;Issues section&lt;/a&gt; and start &lt;a href="https://github.com/postman-open-technologies/gsoc-2023/blob/main/CONTRIBUTOR_GUIDANCE.md" rel="noopener noreferrer"&gt;commenting and letting people know what your ideas are&lt;/a&gt;. No worries, you'll learn it all during this summer!) &lt;/p&gt;

&lt;p&gt;Yours truly&lt;br&gt;
Open Source Program Office at Postman &amp;lt;3&lt;/p&gt;

</description>
      <category>api</category>
      <category>beginners</category>
      <category>opensource</category>
      <category>postman</category>
    </item>
  </channel>
</rss>
