Giter Site home page Giter Site logo

shenuu121 / api-insights Goto Github PK

View Code? Open in Web Editor NEW

This project forked from xinjixi/api-insights

0.0 0.0 0.0 1.71 MB

API Insights is an open-source tool that helps developers improve API quality and security.

License: Apache License 2.0

Shell 0.21% JavaScript 0.20% Go 62.21% TypeScript 26.73% CSS 0.13% Makefile 0.19% HTML 0.09% Dockerfile 0.23% SCSS 9.97% Mustache 0.04%

api-insights's Introduction

Go Report Card published

API Insights

API Insights Logo

API Insights is a tool to enable organizations to manage versioned API specifications (Swagger 2.0/OpenAPI Spec 3.x) for services. It also does static analysis of API spec files for compliance against REST API best practices guidelines, document completeness, inclusive language check and runtime API drift from documented spec. To help API consumers and developers, API Insights service also supports generating an API changelog including identification of backward compatibility breaking changes between 2 versions of API spec files.

API Specifications Challenges

  • As the number of services increases, no common place for storing versioned API specs.
  • Inconsistency in API specifications across teams. Makes it difficult for API consumers that integrate across multiple APIs.
  • API changes across versions could result in breaking backward compatibility.
  • Lack of consistent documentation of API changes across multiple releases.

Solution

API.Insights-Demo.Video.mp4
  • API Insights service enables storing of multiple versions of released (& release candidate) API specifications.
  • Validate & Score API Spec against guidelines:
  • API spec diff across multiple versions/revisions
    • Identify and alert on backward compatibility breaking changes.
    • API Insights CLI to enable running spec analyzer as a part of API spec CI/CD or local commit pipeline.

User Flow and Architecture

API Insights

User Flow

  • Developer or Tech Lead can upload the API Specification and subsequent revisions:
    • Commit new version/revision of spec in GitHub repository.
    • CI/CD pipeline with specs analysis against guidelines & generate report/score.
    • On GitHub release tag, new version/revision of spec will be uploaded to the API Insights service by CI/CD task.
    • Multiple API specs across products/services can be managed in the API Insights service.
  • On new spec upload, preconfigured analyzers will run on spec in background.
  • User can go API Insights UI to view:
    • Analyzer score and issue listing with trends across releases.
    • Detailed report with severity, line number and remediation recommendations.
  • Users will be able to see a summary of all API changes (New, Modified, Removed & Breaking) and will be able to see the detailed spec diff by clicking on each changed item.
  • Integration with APIClarity & Panoptica will allow:
    • Security and Compliance users to get reports on Zombie & Shadow APIs
    • Reconstructed OAPI for missing specs
    • Security Analysis of API

Related Projects and resources

Getting Started

This repo contains a Helm based deployer that can be deployed in a local Kubernetes cluster setup using like Rancher Desktop, minikube etc. The detailed instructions are found here.

Development setup

Build and start UI & backend services using Docker Compose

docker-compose up 

Once Docker Compose is up, UI and be access at http://localhost:8080

  • To run the API service natively outside docker, refer to api/README.md
  • To run the UI natively outside docker, refer to ui/README.md

Note: Docker-compose requires installing Rancher Desktop or licensed 'Docker Desktop'.

Contribution

We welcome contributions, please find details in CONTRIBUTING.md

api-insights's People

Contributors

xilai-tong avatar chryang2 avatar npateriya avatar xinjixi avatar adilmirz avatar jerrchan avatar coliu19 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.