Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: added table of contents and introduction document for Studio tool #553

Open
wants to merge 46 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
2587e35
doc: added the introduction document
Jagrutiti Jan 29, 2023
addb6bf
Update docs/introduction.md
Jagrutiti Feb 2, 2023
226f726
Update docs/introduction.md
Jagrutiti Feb 4, 2023
12ac0ea
Update docs/introduction.md
Jagrutiti Feb 4, 2023
91dfac2
Update docs/introduction.md
Jagrutiti Feb 4, 2023
af527dc
Update docs/README.md
Jagrutiti Feb 4, 2023
c4bcb1f
fix: updating intro doc based on review
Jagrutiti Feb 4, 2023
f0121e7
Merge branch 'doc/introduction' of https://github.com/Jagrutiti/studi…
Jagrutiti Feb 4, 2023
a30ac58
fix: updating intro doc based on review
Jagrutiti Feb 4, 2023
ba9b0dc
zero draft of navigation.md
Jagrutiti Feb 4, 2023
b3ca964
Merge branch 'master' into doc/introduction
magicmatatjahu Feb 13, 2023
600a736
adding the settings doc
Jagrutiti Feb 13, 2023
a51456e
Merge branch 'doc/introduction' of https://github.com/Jagrutiti/studi…
Jagrutiti Feb 13, 2023
0cc374f
Applying the suggestions based on review.
Jagrutiti Feb 13, 2023
f80dc2e
updating definitions of a few components
Jagrutiti Feb 13, 2023
619ac02
Merge branch 'doc/introduction' of https://github.com/Jagrutiti/studi…
Jagrutiti Feb 13, 2023
6aa4a05
updated the navigation doc
Jagrutiti Feb 14, 2023
26a14ec
Merge branch 'master' into doc/introduction
KhudaDad414 Sep 26, 2023
8def3f9
Merge branch 'asyncapi:master' into doc/introduction
Jagrutiti Oct 19, 2023
19c4423
Modified sentences
Jagrutiti Oct 19, 2023
e64d6c5
Merge branch 'master' into doc/introduction
Amzani Oct 27, 2023
dd3c7e5
Update docs/introduction.md
Amzani Nov 28, 2023
5907766
Update docs/navigation.md
Amzani Nov 28, 2023
aaa3aba
Update docs/navigation.md
Amzani Nov 28, 2023
40624b1
Merge branch 'master' into doc/introduction
Amzani Feb 16, 2024
b9e8fe6
Merge branch 'master' into doc/introduction
Amzani Feb 19, 2024
ae25d3c
Merge branch 'master' into doc/introduction
Amzani Feb 19, 2024
26a0958
Merge branch 'master' into doc/introduction
Amzani Feb 21, 2024
7643f0c
Merge branch 'master' into doc/introduction
Amzani Mar 18, 2024
48fc8fa
Merge branch 'master' into doc/introduction
Amzani Mar 26, 2024
1a3d7d1
Update docs/navigation.md
Amzani Mar 26, 2024
9e186b3
Update docs/navigation.md
Amzani Mar 26, 2024
63d26df
Update docs/navigation.md
Amzani Mar 26, 2024
57cb82d
Update docs/navigation.md
Amzani Mar 26, 2024
136c0de
Update docs/navigation.md
Amzani Mar 26, 2024
99c23cf
Update docs/navigation.md
Amzani Mar 26, 2024
79a87bd
Update docs/navigation.md
Amzani Mar 26, 2024
c1aff6f
Update docs/navigation.md
Amzani Mar 26, 2024
bea6070
Update docs/navigation.md
Amzani Mar 26, 2024
ac6a5b9
Update docs/navigation.md
Amzani Mar 26, 2024
6c244e5
Update docs/navigation.md
Amzani Mar 26, 2024
d065f54
Update docs/navigation.md
Amzani Mar 26, 2024
f304b6c
Update docs/settings.md
Amzani Mar 26, 2024
c1f6de5
Update docs/settings.md
Amzani Mar 26, 2024
ccbb96c
Merge branch 'master' into doc/introduction
KhudaDad414 Mar 26, 2024
c470434
Merge branch 'master' into doc/introduction
KhudaDad414 Apr 4, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Table of contents
Jagrutiti marked this conversation as resolved.
Show resolved Hide resolved

- [Introduction](introduction.md)
- [Navigation](navigation.md)
- [Studio Settings](settings.md)
29 changes: 29 additions & 0 deletions docs/introduction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
Studio is an AsyncAPI development platform that enable users to create, visualise, collaborate on event-driven architectures.

Using Studio you can create an AsyncAPI document, visualize the flow of events, preview, validate, and convert the AsyncAPI document to the latest version in one place.

You can use it to view the events, publishers, subscribers, messages, payload as you design your API.

Jagrutiti marked this conversation as resolved.
Show resolved Hide resolved
# Studio Use Cases

- Create and visualize event-driven AsyncAPI on the go.
- Real-time visualization and documentation for your APIs.


# Studio Advantages
- User-friendly.
- Visualizing events flow.
- Interactive AsyncAPI documentation.
- Straightforward and effortless in building APIs.


# Usage

Jagrutiti marked this conversation as resolved.
Show resolved Hide resolved
To start using Studio, make sure you have an AsyncAPI file for your API.
<Remember>

If you do not have an `asyncapi.yaml` file ready, then generate one by running:
`asyncapi new --example=tutorial.yml --no-tty`.

Jagrutiti marked this conversation as resolved.
Show resolved Hide resolved
</Remember>
Use the `Block visualizer` button to toggle the Event Visualizer window from the navigation panel. You will find the navigation panel to the extreme left your screen.
114 changes: 114 additions & 0 deletions docs/navigation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
# Navigation panel

This document will walk you through the functions of each button in the navigation panel.

# Navigation Button

The first button in the navigation panel is the Navigation button. It is one of the default active buttons.

The navigation button is divided into four parts. It provides the following information:

- Servers
- Operations
- Messages
- Schemas

## Servers

The Servers section displays the name and information of the [server]( https://www.asyncapi.com/docs/concepts/server) you are using to build your AsyncAPI.

## Operations

The Operations section lists all the operations that are a part of the AsyncAPI. It adds the perfix `PUB` for publisher and `SUB` for subscriber to differentiate between both the operations.

## Messages

The Messages section displays the messages stored in the `components.messages` section. This does not mean that every message in the component is used. It can be defined but it may not used by references in the `operation` field.


## Schemas

The Schemas displays the schemas stored in the `components.schemas` section. This does not mean that every schema is used in the document. You can have it defined but it may not be used by references in the `message.payload` field.


# Editor

The Editor section is where you edit the AsyncAPI file. As you edit, you will see the changes reflect dynamically in the HTML preview and Block Visualizer section.

Click on the individual elements of the Navigation button to jump to those sections in HTML preview and Block Visualizer section.

## Diagnostics Window

The Editor also has a resizeable Diagnostics window. It shows a quick count number of...
- errors (in red),
- warnings (in yellow),
- information (in blue),
- hints (in green)
...by its title. The description of the diagnostics with line number is displayed in a table.

To the right side of the title bar there are three indicators of the Diagnostics window:

- Valid/Invalid - It is green if the syntax is green and red when invalid.
- Autosave - It shows whether Autosave is on or off.
- Type - Shows the language in which the API is written: `JSON` or `YAML`.

Below the title bar there is a control panel. You can use the buttons to:

- Hide and show erros
- Hide and show warnings
- Hide and show information messages
- Hide and show hints

There is also a search bar that aids in finding issues by their names. You will see the Settings icon to the right. It will take you to the governance of Diagnostic's settings window.

# HTML Preview

This section displays the preview of everything you have written in the code editor. It uses different fonts, colors, and styles for readability. Each section has a different card.

It starts with displaying the title, version, and description of the API. It renders the formatting too. You can expand each element too via the `key: value` pair of each element, type, payload, and message.


# Blocks visualizer

Blocks visualizer gives you a quick overview of your API. Unlike HTML preview, Blocks visualizer gives a diagrammatic visual of your API.

The title card is at the top-left corner of the Block visualizer window. Followed by the Operations card. You can visualize channels, published messages, payload, type, patterns, and relationships between the components.

The Blocks visualizer has two set of controls:

- In the top right corner of the window you will find the play and reset button. Play to view live relationship between the components and its flow. Reset to get back to the default view.

- To the bottom left of the window there are four controls: zoom in, zoom out, full-screen, and toogle interactivity. You zoom the cards in and out or view them in full-screen mode. To prevent the cards from shifting use the toggle interactivity control.


# New File

To create a new file you can pick one of the available templates.

## Templates

There are 5 available to quick start Studio.

- Simple Example - A basic example of a service that is in charge of processing user signups. Great place to start learning AsyncAPI.

- Apache Kafka - A framework implementation of a software bus using stream-processing. Open Source developed by the Apache Software Foundation.

- WebSocket - A framework implementation of a software bus using stream-processing. Open Source developed by the Apache Software Foundation.

- MQTT - A protocol for fetching resources. It is the foundation of any data exchange on the Web and it is a client-server protocol.

- HTTP - A protocol for fetching resources. It is the foundation of any data exchange on the Web and it is a client-server protocol.

## Real World Examples

Studio provides two templates to help you get started.

- Slack Real Time Messaging API - Slack Real time messaging API. Using HTTP protocol.

- Gitter Streaming API - Gitter Streaming API from https://stream.gitter.im. Using HTTP protocol.

## Tutorials

Studio also provides you with a template of an invalid AsyncAPI document. The purpose of this tutorial is to educate, and learn document validation.

[You can request to add a Studio template](https://github.com/asyncapi/studio/issues/new?assignees=&labels=enhancement&template=enhancement.md&title=Template%20Request:%20{%20template%20name%20and%20type%20}) to the list if you don't find what you are looking for.
30 changes: 30 additions & 0 deletions docs/settings.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Settings

You will find the settings icon in the lower-left corner of your screen. It helps you to customize tool functioning to your liking.

Settings has three tabs:
- Editor
- Governance
- Templates

## Editor

The editor allows you to:

1) Enable or disable the Auto saving mode.
2) Decide the delay in seconds in saving the modified document.

## Governance

The Governance tab provides three options:

1) Enable or disable warning governance issues in the editor's Diagnostics tab.

2) Enable or disable information governance issues in the editor's Diagnostics tab.

3) Enable or disable hint governance issues in the editor's Diagnostics tab.


## Templates

Enable or disable the automatic rendering of templates after each change in the document or manually.
Loading