Skip to content

Commit d26077a

Browse files
adlerfaulknergitbook-bot
authored andcommitted
GitBook: No commit message
1 parent 12a2699 commit d26077a

12 files changed

+70
-0
lines changed
333 KB
Loading

Diff for: .gitbook/assets/image (1).png

73 KB
Loading

Diff for: .gitbook/assets/image (2).png

145 KB
Loading

Diff for: .gitbook/assets/image (3).png

291 KB
Loading

Diff for: .gitbook/assets/image (4).png

142 KB
Loading

Diff for: .gitbook/assets/image.png

60.4 KB
Loading

Diff for: README.md

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Introduction
2+
3+
Standard SDK is an open source software package that provides you with a single [SDK](https://en.wikipedia.org/wiki/Software\_development\_kit) to integrate and interact with any API. It vastly simplifies developer experience when building applications, especially ones which require lots of interaction with external APIs.
4+
5+
Developers commonly spent lots of time installing SDKs, reading documentation, and figuring out how to use each SDK to build integrations using APIs and add features to their application (eg. the [Google API Node Client](https://www.npmjs.com/package/googleapis), the [Node Slack SDK](https://slack.dev/node-slack-sdk/), etc.). Instead of going through this time consuming process installing and learning many different SDKs, a developer can just install Standard SDK to build any integration their application requires. In addition to saving time, removing dependencies on all those SDKs in favor of just one can reduce your application's build size, and make it easier to onboard developers to your codebase.
6+
7+
### How it works
8+
9+
Standard SDK is powered by open source standardized API specifications like [OpenAPI](https://www.openapis.org/). Once you provide specifications for the APIs you want your application to integrate with, you can use Standard SDK to send properly formatted web requests, RPC messages, SQL queries, etc. to those APIs. The API specifications which Standard SDK works with or is planning to add support for include:
10+
11+
* [OpenAPI](https://www.openapis.org/) Specifications for REST APIs
12+
* (Coming soon) [GraphQL Schemas](https://graphql.org/learn/schema/) for GraphQL APIs [Upvote the issue](https://github.com/comake/standard-sdk-js/issues/5)
13+
* (Coming soon) [OpenRPC](https://open-rpc.org/) for RPC APIs [Upvote the Issue](https://github.com/comake/standard-sdk-js/issues/6)
14+
* (Coming soon) [AsyncAPI](https://www.asyncapi.com/) for Asynchronous/Event Driven APIs [Upvote the Issue](https://github.com/comake/standard-sdk-js/issues/7)
15+
* (Longer term roadmap) SQL Interfaces
16+
17+
There are multiple ways to provide API specifications to Standard SDK:
18+
19+
1. As a file path (either a single file or a folder holding multiple API specifications)
20+
2. As a variable (string or json object)
21+
3. From a [Standard Knowledge Language](https://docs.standardknowledge.com/) (SKL) schema source
22+
23+
To start building integrations using Standard SDK now, see [Quick Start](get-started/quick-start.md). Alternatively, read on to learn about how Standard SDK and Standard Knowledge Language can be used in combination to integrate with capabilities and data types across many APIs.
24+
25+
### Standard Knowledge Language
26+
27+
Although Standard SDK makes it easier to send properly formatted web requests to APIs, developers still have to be familiar with the unique data formats and capabilities of each API they use and how to transform those into the data formats and features of their application. This is not a trivial task, especially as the number of integrations they need increases.
28+
29+
Standard Knowledge Language (SKL) defines a protocol for interacting with non-standard data formats and APIs through standard abstractions of data and capabilities. If you haven't already, you may want to read the [Standard Knowledge Language Overview](https://docs.standardknowledge.com/) before moving ahead.
30+
31+
SKL enables developers to use abstractions such as an ontology or common models to facilitate interactions with multiple similar APIs. In other words, rather than having to write custom code for each API, a developer using a Standard SDK can build over a common model that can then interact with multiple APIs. See [Getting Started With SKL](get-started/getting-started-with-skl.md) to learn more.

Diff for: SUMMARY.md

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Table of contents
2+
3+
* [Introduction](README.md)
4+
5+
## Get Started
6+
7+
* [Quick Start](get-started/quick-start.md)
8+
* [Getting Started With SKL](get-started/getting-started-with-skl.md)
9+
10+
## Other
11+
12+
* [Contributing](other/contributing.md)
13+
* [License](other/license.md)

Diff for: get-started/getting-started-with-skl.md

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Getting Started With SKL
2+

Diff for: get-started/quick-start.md

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Quick Start
2+
3+
Currently, Standard SDK is implemented only as a JavaScript module. However, its functionality could be implemented in other popular languages. If you would like to contribute to creating a Standard SDK in another language, please start a [discussion](https://github.com/comake/standard-sdk-js/discussions).
4+
5+
To get started with Standard SDK in Node.js, install the module with npm or yarn:
6+
7+
```shell
8+
npm install @comake/standard-sdk
9+
```
10+
11+
or
12+
13+
```shell
14+
yarn add @comake/standard-sdk
15+
```
16+
17+
To use Standard SDK in a browser, you'll need to use a bundling tool such as Webpack, Rollup, Parcel, or Browserify. Some bundlers may require a bit of configuration, such as setting `browser: true` in rollup-plugin-resolve.
18+
19+
20+

Diff for: other/contributing.md

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Contributing
2+

Diff for: other/license.md

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# License
2+

0 commit comments

Comments
 (0)