blob: c5ec1dfedcee659f2d8180c4c5d69dacb600ac36 [file] [log] [blame] [view] [edit]
**Design:** Convention, **Status:** [Accepted](README.md)
## API Reference
This page describes a general guideline for API Reference.
### Definition
- SDK public APIs: all classes/interfaces annotated with `@SdkPublicApi`
- SDK protected APIs: all classes/interfaces annotated with `@SdkProtectedApi`
- SDK internal APIs: all classes/interfaces annotated with `@SdkInternalApi`
### General Guideline
- All SDK public APIs MUST have documentation.
- All public methods in SDK public APIs MUST have documentation except the ones that implement or override a method in an interface or superclass.
- For SDK protected APIs and internal APIs, documentation is recommended but not required.
- Javadocs for SDK public APIs in high level libraries such as DynamoDB Enhanced Client SHOULD include code snippets.
### Style guideline
- Javadoc MUST be properly formatted following the [Javadoc standard](https://www.oracle.com/technical-resources/articles/java/javadoc-tool.html).
- A single `<p>` MUST be used between paragraphs.
- Use `@link` and `@see` tags to point to related methods/classes.
- Use `@throws` to specify exceptions that could be thrown from a method.
- Use `@snippet` to add code snippets. [External code snippets](https://docs.oracle.com/en/java/javase/18/code-snippet/index.html#external-snippets) SHOULD be favored over inline code snippets.
- Use `@deprecated` tag for deprecated methods. The replacement MUST be documented and linked using `{@link}`.
- Avoid using `@version` and `@since` tags.