GithubHelp home page GithubHelp logo

lzzhengyi / swell Goto Github PK

View Code? Open in Web Editor NEW

This project forked from open-source-labs/swell

0.0 1.0 0.0 325.94 MB

Swell: API development tool that enables developers to test endpoints served over streaming technologies including Server-Sent Events (SSE), WebSockets, HTTP2, GraphQL, and gRPC.

Home Page: http://www.getswell.io

License: MIT License

JavaScript 85.03% HTML 0.05% TypeScript 10.30% Python 1.04% SCSS 3.26% CSS 0.31%

swell's Introduction

License: MIT Build Status GitHub package.json version contributions welcome Tweet

Swell is a API development tool that enables developers to test endpoints served over streaming technologies including Server-Sent Events (SSE), WebSockets, HTTP2, GraphQL and gRPC.

Getting Started

Visit www.getswell.io to download the latest release.

Swell is currently available for OS X, Linux and Windows.

Highlights

Swell is a one-stop shop for sending and monitoring your API requests

  • Send and monitor streams over HTTP2 / HTTP1 (including SSEs) and WebSockets
  • Create GraphQL queries, introspections, mutations, and subscriptions
  • Make API requests based on a range of provided options that conform to the specifications defined in an OpenAPI document.
  • Verify STUN and TURN server connectivity for WebRTC applications by generating an SDP
  • Provides full streaming testing support for gRPC
  • View response timing information and history in an interactive chart for each request
  • Save workspaces of multiple requests for later access
  • Import and export workspaces for sharing
  • Compose test suites in JavaScript with Chai-style TDD/BDD assertion syntax
  • Execute a collection of requests in succession and receive clear visual feedback of each test's status
  • Schedule requests on to be sent on a regular time interval to support endpoint functional validation tests

Supported Technologies

  • HTTP2: Swell supports full HTTP2 multiplexing of requests and responses. HTTP requests to the same host will be sent over the same connection. Swell will attempt to initiate an HTTP2 connection for all HTTPS requests by default, but will revert to HTTP1.1 for legacy servers. Multiple concurrent streams are allowed for each connection.

  • Server-Sent Events (SSE): Initiated by a simple toggle box, Swell displays SSE events one by one as they come in. Similar to HTTP2 streams, multiple open connection streams are allowed for SSE.

  • WebSocket (WS): Swell enables connecting directly to WebSocket servers with an HTTP handshake. Developers can directly send messages to the connected WS server. Messages are displayed in chatbox format, clearly indicating outgoing and incoming messages.

  • GraphQL: Swell includes full support for all three root types of GraphQL - queries, mutations, and subscriptions as well as Introspection - with and without variables. Smart code editor allows for easy query creation.

  • gRPC: Swell includes full support for all four streaming types of gRPC - unary, client stream, server stream, bidirectional stream.

  • OpenAPI: Swell supports the enumeration and execution of REST and RPC API requests as defined in a user-provided OpenAPI document.

  • WebRTC: Swell enables testing STUN and TURN ICE server connectivity for WebRTC applications.

    Developers enter ICE server details as an array of JavaScript objects (example code block below). An RTCPeerConnection is instantiated and an SDP is generated.

    [
      {
        urls: 'turn:111.222.333.444:54321',
        username: 'myAwesomeUsername',
        credential: 'mySecretPassword',  // or token
        credentialType: 'password'
      },
      {
        urls: 'stun:555.777.888.999:43210',
      },
    ]
  • Webhooks: Swell includes user-defined HTTP callback connection testing designed to test other server's connection to the web and ability to send data. The test insures that when an event occurs, the source site makes an HTTP request to the URL configured for the webhook.

Additional Features

  • Scripting in Swell: Swell allows you to write assertion tests to aid in the test-driven development cycle of backend API services.
  • Workspaces: Swell allows you to save workspaces for easier testing of multiple requests.
  • Import/Export Workspaces: Swell allows you to import and export workspaces, making it easy to share collections with your team.
  • Preview: You can now view a rendered preview of certain API responses (HTML)
  • Collection Runner: You can also stage requests in the workspace and automate the process of sending off each one. No need to manually press send on each one, instead each request will fire off in the order of staging.
  • Schedule Tests: You can also automate sending requests to occur on a periodic basis.
  • Dark Mode: Swell allows you to toggle between light and dark mode when viewing the application.

Built With

  • Electron
  • React
  • Redux
  • Apollo Client
  • Websockets
  • gRPC-js
  • VM2
  • Chart.js
  • Bulma
  • IndexedDB
  • Chai
  • Mocha

Authors

License

This project is licensed under the MIT License

swell's People

Contributors

texpatnyc avatar garyslootskiy avatar alexsanhueza avatar cgefx avatar nathanielbadams avatar danst3in avatar abbychao avatar jasonligg avatar edwardcho1231 avatar nancyddao avatar nickhealy avatar stephwood avatar johnmadrigal avatar miggonzalez avatar whtait avatar egrobar avatar mjmiguel avatar samhaar avatar h15200 avatar michaelgprince avatar brandon6190 avatar addoasa avatar wcbell51 avatar andrea-gli avatar sam-parsons avatar kajolthapa avatar majorlift avatar gspletzer avatar aflinky avatar pauleramirez avatar

Watchers

James Cloos 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.