Skip to content

Commit c94d54c

Browse files
committed
docs: add tooling section
Add a section that discusses the AEP tooling ecosystem. This will better improve the discoverability of the tools.
1 parent f654697 commit c94d54c

File tree

2 files changed

+62
-0
lines changed

2 files changed

+62
-0
lines changed

config/hero.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,14 @@ shortcuts:
1919
button:
2020
href: /contributing
2121
text: Contribute to the project
22+
- title: Want to see the tools?
23+
description: |
24+
AEPs provide an ecosystem of tools to help produce compliant APIs and
25+
interact with them. Learn more about how the tools fit in to a development
26+
workflow.
27+
button:
28+
href: /general/tooling-and-ecosystem
29+
text: View ecosystem
2230
- title: Want to adopt AEPs in your organization?
2331
description: |
2432
AEPs were adapted from [Google's AIP project](https://google.aip.dev/), but also enhanced with improved
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Tooling and Ecosystem
2+
3+
In addition to an API design specification, AEPs also provide an ecosystem of
4+
tooling to help produce and interact with these APIs.
5+
6+
## Diagram
7+
8+
The following is a diagram that illustrates an end-to-end workflow, including
9+
nodes of tooling that exists, or is intended to be created for the project.
10+
11+
Some of the tools in the diagram are not maintained by the AEP project. The
12+
diagram is intended to be a complete representation of tools available to help
13+
a user understand how the tools fit in to a development workflow.
14+
15+
```mermaid
16+
flowchart TD
17+
tool([tool])
18+
use-case[/possible use case/]
19+
user(user authored)
20+
generated{{generated}}
21+
```
22+
23+
The service generation tooling looks like:
24+
25+
```mermaid
26+
flowchart TD
27+
resources("AEP Resource yaml")
28+
resources --> hub(['<a href="https://github.com/aep-dev/aepc">aepc: service API generator</a>'])
29+
hub --> proto{{"gRPC protobuf definition"}}
30+
hub --> openapi{{"OpenAPI Schema"}}
31+
hub --> graphql[/GraphQL definitions/]
32+
proto --> proto-service(your proto service)
33+
proto-service --> http-grpc{{"HTTP REST APIs via grpc-gateway"}}
34+
proto --> proto-linter([<a href="https://github.com/aep-dev/api-linter">aep-proto-linter: lint gRPC definitons for AEP compliance.</a>])
35+
openapi --> http-generated{{api stubs via openapi-generator}}
36+
openapi --> oas-linter([<a href="https://github.com/aep-dev/aep-openapi-linter">aep-openapi-linter: lint OAS definitions for AEP compliance.</a>])
37+
http-generated --> http-service(your http service)
38+
```
39+
40+
While the client tooling for an AEP-compliant compatible API includes:
41+
42+
```mermaid
43+
flowchart LR
44+
http["AEP-compliant REST API and OpenAPI definition"]
45+
http --> cli([<a href="https://github.com/aep-dev/aepcli">aepcli: a command-line interface for AEP-compliant APIs</a>])
46+
http --> terraform_generator(["terraform provider generator (planned)"])
47+
terraform_generator --> terraform{{"terraform provider"}}
48+
http --> llm[/"LLM plugin (external integration)"/]
49+
http --> ui([<a href="https://github.com/aep-dev/aep-explorer">aep-explorer: interactive web UI to create, edit, list, and modify resources])
50+
http --> sdks[/"Language-specific libraries (e.g. via openapi-generator)"/]
51+
http --> asset_inventory[/"Asset inventory and policy management tooling (external integration)"/]
52+
http --> crd_generator(["Kubernetes Custom Resource Definitions generator"])
53+
http --> docs(["API documentation generator (planned)"])
54+
```

0 commit comments

Comments
 (0)