Postman at Google Summer of Code 2023

Benjamin Granados

This year, Postman was once again a mentoring organization in the Google Summer of Code (GSoC), a global program dedicated to bringing new contributors into the world of open source. The response this year was incredible, as we received more than 90 applications from multiple countries. Ultimately, we ended up working with eight outstanding mentees. Now that the program has concluded, it’s time to celebrate the amazing work we did together.

The projects: unveiling the power of API specifications

This year’s focus was on API specifications, with a strong emphasis on AsyncAPI, OpenAPI, and JSON Schema. These specifications play a pivotal role in shaping the future of the API economy. Without further ado, here’s the impressive list of projects that were successfully completed this year.

AsyncAPI projects

Automate listing of members of the technical steering committee

The AsyncAPI community follows an open governance model and has introduced a technical steering committee (TSC), which consists of all the code owners who want to use their right to vote in the TSC decision-making process. The idea of this project was to develop a GitHub action (or a bot) that reads VOTERS files from all repos, maintains a single list, and puts it on the website.

  • Contributor: Richa Sharma
  • Mentors: Saurav Kumar, Lukasz Gornicki, and Khuda Dad Nomani
  • GitHub repository

Introduce UI tests and refactoring for the AsyncAPI website

The current codebase of the AsyncAPI website doesn’t contain any UI tests, which makes it hard to maintain consistency. The idea of this project was to write automation tests that run at the PR level and check the overall build and codebase of the changes made in the PR. The project also involved refactoring some parts of the code to make it unit-testable and reusable across the codebase.

Add “Autofix” feature for common linting errors (with Spectral)

AsyncAPI Preview is a VSCode extension for viewing AsyncAPI documents inside VSCode, and Spectral for VSCode provides inline and listed linting errors for common and even custom mistakes. This project was all about providing auto-fix refactoring for the most common and standard spectral linting errors for AsyncAPI.

Authentication layer for Glee with support for multiple authentication frameworks

Glee is an innovative spec-first framework that empowers developers to build high-performing server-side applications with ease. By allowing users to focus on the business logic of their applications, Glee takes care of the critical aspects of performance, scalability, and resilience, making it an ideal solution for complex production environments. As of now, Glee supports multiple protocols like Websocket, MQTT, Kafka, and support for HTTP is coming soon. The idea of this project was to implement support for multiple authentication and authorization processes.

  • Contributor: Alexander Godwin Ereremena
  • Mentors: Souvik De and Khuda Dad Nomani
  • GitHub repository

OpenAPI projects

The OpenAPI web search (OAWS) project is all about building a search engine for finding Swagger and OpenAPI definitions on the open web—mostly from lesser-known sources. OAWS indexes APIs from various public sources and makes them searchable by keyword, provider, and other metadata. This project lets you say “goodbye” to the frustration of sifting through endless documentation—and say “hello” to a streamlined experience for finding APIs that support your use cases.

Eventually, the dataset powering OAWS will be able to be used to analyze the specifications to obtain insights into some common API practices. Learn more about OAWS here.

  • Contributor: Priyanshu Sharma
  • Mentors: Vinit Shahdeo, Himanshu Sharma, and Harshil Jain
  • GitHub repository

GitHub is home to more than 100 million developers who share source code, API interfaces, API definitions, and much more. We worked on providing a robust way to crawl public GitHub repositories for machine-readable API definitions.

Schema.org OpenAPI catalog project

Schema.org is a collaborative community activity with a mission to create, maintain, and promote schemas for structured data on the Internet, on web pages, in email messages, and beyond. We worked to create an open catalog of OpenAPI definitions for each of the Schema.org objects that provides a robust set of starting OpenAPI templates for teaching or developing new APIs using a design-first approach. This project not only helps save developers’ time when it comes to creating new APIs, but also helps ensure that APIs are developed according to common standards and are as interoperable as possible.

  • Contributor: Pragya Bhardwaj
  • Mentors: Sourabh Bagrecha, Sai Alekhya Yerragunta, and Pascal Heus
  • GitHub repository

JSON Schema projects

Bowtie and the world of JSON Schema

Bowtie is a new tool that validates the conformance of various JSON Schema tools with the specification by running them against a set of known correct test cases. It also regularly renders the results of these tests to a web page. The idea of this project was to enhance (or replace) Bowtie’s simplistic UI.

  • Contributor: Agnivesh Chaubey
  • Mentors: Benjamin Granados, Julian Berman, and Pranav Singhal
  • GitHub repository

Thank you—and stay tuned

We would like to take a moment to express our gratitude to the mentors who selflessly dedicated their time, expertise, and unwavering support to our mentees. This program would not be possible without their commitment and passion for open source.

As we celebrate the successes of GSoC 2023, we are thrilled about the prospect of participating again next year! However, you don’t have to wait for GSoC to get involved. If you’re passionate about specifications like AsyncAPI or JSON Schema and want to make a difference, consider contributing at any time. Just visit their repositories and follow the contribution guidelines.

For more information on how to contribute, please reach out to us at gsoc@postman.com.

What do you think about this topic? Tell us in a comment below.

Comment

Your email address will not be published. Required fields are marked *


This site uses Akismet to reduce spam. Learn how your comment data is processed.