Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
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
8 changes: 4 additions & 4 deletions config/hero.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ buttons:
shortcuts:
- title: Curious about the basics?
description: |
AEPs are a combination of design guidance and a system we use to manage
AEPs are a combination of design guidance and a system to manage
and track that guidance. Learn more about how the AEP program works in
the first AEP!
button:
Expand All @@ -21,10 +21,10 @@ shortcuts:
button:
href: /contributing
text: Contribute to the project
- title: Want to use AEPs for your organization?
- title: Want to use AEPs in your organization?
description: |
AEPs are designed to be useful outside of Google. Take a look at how you
might choose which AEPs are best suited to your API design needs.
AEPs were adapted from [Google's AIP project](https://google.aip.dev/),
and offer benefits and tooling that result in better designed APIs.
button:
href: /adopting
text: Learn more
Expand Down
19 changes: 12 additions & 7 deletions pages/general/adopting.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
# Adopting AEPs for your company

Currently, we encourage adoption of AEPs via having your APIs adhere to the
guidance served at https://aep.dev.
By adopting the guidelines from the API Enhancement Proposals, you establish a much
tighter and efficient possibility space. APIs that follow the
[AEP guidance](https://aep.dev) from the design stage are:

In the future, we plan to introduce a broader ecosystem of tooling including:
- More consistent APIs within and across teams, reducing cognitive load for consumers
- Argue less about API design decisions, saving time thanks to AEPs explar design patterns

- A forkable repository which allows for internal mirrors and
organization-specific guidance.
- Client-side and server-side code generators.
- Validators to ensure adherence to the specification.
Having an AEP-compliant API also means benefitting from the AEP ecosystem of tooling, such as:

- Linters and validators to ensure adherence to the AEP design specification [proto]()/[openapi]()
- Command line tool that make it easier to work with APIs ([aepcli](https://github.com/aep-dev/aepcli))
- Client-side and server-side code generators ([aepc](https://github.com/aep-dev/aepc))
- A Terraform provider ([terraform-provider-aep](https://github.com/aep-dev/terraform-provider-aep))
- ... and more! Please start a [discussion](https://github.com/aep-dev/aep.dev/discussions) if there is something you wish to see, validate, or prioritize.
30 changes: 15 additions & 15 deletions pages/general/faq.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
# Frequently Asked Questions

## What is the difference between aep.dev and google.aip.dev?
## What are the differences between AEPs and AIPs?

As aep.dev is derived from [google.aip.dev](https://google.aip.dev), a lot of
content will be familiar.
If you are familiar with Google's API Improvement Proposals
[google.aip.dev](https://google.aip.dev), then much of the
[API Enhancement Proposals](https://aep.dev) content will be familiar.

However, aep.dev has significant philosophical differences:
However, AEPs have notable philosophical differences, including:

- aep.dev prioritizes broadly applicable design guidance, while google.aip.dev
prioritizes design guidance this best for Google, such as guidance that is
backwards-compatible with existing decisions at the company.
- aep.dev is protocol-agonistic, and considers gRPC and HTTP + JSON as
first-class protocols for which examples and other content will be authored.
- google.aip.dev encourages forking the guidance, while aep.dev focuses on a
set of core specification that should not be forked, paired with a method to
add organization-specific guidance that does not contradict the
specification.
- AEPs prioritize broadly applicable design guidance for any company, while AIPs
prioritized design guidance specifically for Google (e.g., providing
backwards-compatibility with prior decisions to meet Gogole-specific needs).
- AEPs are protocol-agonistic and consider both gRPC and HTTP+JSON as
first-class protocols for which examples and other content are necessary.
- AEPs focuses on a core specification that should not be forked, paired with a
mechanism for optional organization-specific guidance extends the
specification. (Whereas AIPs encourage forking its guidance outright.)

aep.dev also has the advantage of hindsight, which makes it possible in some
cases to provide better guidance than google.aip.dev. (One small example:
AEPs also have the advantage of hindsight, which makes it possible in some
cases to provide better guidance. (One small example:
renaming `page_size` to `max_page_size` for requests to paginated API methods.)