Show HN: OpenAPI DevTools – Chrome ext. that generates an API spec as you browse

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  1. openapi-devtools

    Browser extension that generates API specs for any app or website

    As a follow up, the algorithm that powers this makes use of the chrome.devtools.network API. Specifically it passes the Request object that is in the HAR 1.2 archive format.

    So if you can pass the equivalent of that in Firefox/other browsers to the insert method and switch things up a bit, it should be relatively straightforward. I will think about pulling out the core logic into its own lib.

    https://developer.chrome.com/docs/extensions/reference/devto...

    https://developer.chrome.com/docs/extensions/reference/devto...

    https://github.com/AndrewWalsh/openapi-devtools/blob/main/sr...

  2. InfluxDB

    InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.

    InfluxDB logo
  3. DefinitelyTyped

    The repository for high quality TypeScript type definitions.

    Do you mean the devtool protocol[1]? I didn't follow the space so have no knowledge on it. On the other hand there seem to be a polyfilled API on chrome.devtools.network.Request which OP's extension uses extensively https://github.com/DefinitelyTyped/DefinitelyTyped/blob/mast...

    [1] https://chromedevtools.github.io/devtools-protocol/

  4. gorilla

    Gorilla: Training and Evaluating LLMs for Function Calls (Tool Calls)

    Nice this made me go back and check up on the Gorilla LLM project [1] to see whats they are doing with API and if they have applied their fine tuning to any of the newer foundation models but looks like things have slowed down since they launched (?) or maybe development is happening elsewhere on some invisible discord channel but I hope the intersection of API calling and LLM as a logic processing function keep getting focus it's an important direction for interop across the web.

    [1] https://github.com/ShishirPatil/gorilla

  5. api2ai

    Create API agents from OpenAPI Specs

    I open sourced this tool that takes OpenAPI spec and let you control API using natural language https://github.com/mquan/api2ai

    Let me know if you have any questions or feature request

  6. mitmproxy

    This reminds me a lot of:

    https://github.com/alufers/mitmproxy swagger

    However, having the capability delivered in a browser extension is extremely handy!

  7. OpenAPI-Specification

    The OpenAPI Specification Repository

    I saw your sibling comment about "keeping it simple," however that is a bit counter to "generates OpenAPI specifications" since those for sure are not limited to just application/json request/response bodies

    I wanted to draw your attention to "normal" POST application/x-www-form-urlencoded <https://github.com/OAI/OpenAPI-Specification/blob/3.1.0/vers...> and its multipart/form-data friend <https://github.com/OAI/OpenAPI-Specification/blob/3.1.0/vers...>

    The latter is likely problematic, but the former is in wide use still, including, strangely enough, the AWS API, although some of their newer services do have an application/json protocol

    I know that's a lot of words, but the tl;dr would be that if you want your extension to be application/json only, then changing the description to say "OpenAPI specifications for application/json handshakes" would help the consumer be on the same page with your goals

  8. requests-openapi

    A lightweight but powerful and easy-to-use Python client library for OpenAPI v3.

    It seems like you could combine this extension with some of the OpenAPI -> Python projects to get your desired result. (e.g. https://github.com/wy-z/requests-openapi )

  9. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  10. scalar

    Scalar is an open-source API platform:                                       🌐 Modern Rest API Client                                        📖 Beautiful API References                                        ✨ 1st-Class OpenAPI/Swagger Support

    You could take the OpenAPI json generated from this project and feed it to https://docs.scalar.com/swagger-editor which generates boilerplate in several formats, including Python

  11. curlconverter

    Transpile curl commands into Python, JavaScript and 27 other languages

    I made a fork of the Chrome DevTools that adds exactly this. You can tell Chrome to use a different version of the DevTools if you start it from the command line

    https://github.com/curlconverter/curlconverter/issues/64#iss...

  12. har-to-openapi

    HAR to OpenAPI spec generator

    Genson-js is used to merge JSON Schema objects. Essentially there are 5 schemas that we care about in each request, for request bodies, request headers, response bodies, response headers, and query parameters. Each endpoint (which may or may not be parameterised) has only one schema for each of these values.

    The idea for a crawler is a good one. The core logic that handles spec generation is decoupled from everything else, so it can be extracted into its own library.

    But there are approaches that exist for this already, such as har-to-openapi.

    https://github.com/jonluca/har-to-openapi

  13. apiclient-pydantic-generator

    This code generator creates APIClient app from an openapi file.

    You could potentially go one step further and make Python classes that wrap the whole API automatically from the OpenAPI file: https://github.com/mom1/apiclient-pydantic-generator

  14. webextension-polyfill

    A lightweight polyfill library for Promise-based WebExtension APIs in Chrome

    Firefox maintain a library for unified extension API https://github.com/mozilla/webextension-polyfill

    Their type definition for HAR request isn't exported https://github.com/DefinitelyTyped/DefinitelyTyped/blob/mast...

  15. awesome-test-automation

    A curated list of awesome test automation frameworks, tools, libraries, and software for different programming languages. Sponsored by https://zapple.tech and https://automated-testing.info

    https://github.com/atinfo/awesome-test-automation/blob/maste...

    vcr.py, playback, and rr do [HTTP,] test recording and playback. httprunner can replay HAR. DevTools can save http requests and responses to HAR files.

    awesome-web-archiving lists a number of tools that work with WARC; but only har2warc:

  16. awesome-web-archiving

    An Awesome List for getting started with web archiving

    https://github.com/iipc/awesome-web-archiving/blob/main/READ...

  17. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Show HN: Build type-safe web APIs with JavaScript, instantly

    5 projects | news.ycombinator.com | 25 Oct 2023
  • tRPC – Move Fast and Break Nothing. End-to-end typesafe APIs made easy

    30 projects | news.ycombinator.com | 12 Aug 2023
  • GitHub - thoughtspile/awesome-tiny-js: A collection of tiny JS libraries (under 2 kB) to put your bundle on a diet

    1 project | /r/programming | 13 Jul 2023
  • awesome-tiny-js: A collection of JS libraries under 2 kB

    2 projects | /r/webdev | 3 Jul 2023
  • Template Literal Types: How To Type Strings

    3 projects | dev.to | 14 Jun 2023

Did you know that TypeScript is
the 1st most popular programming language
based on number of references?