Documentation Guidelines
Overview
This guide explains the documentation requirements so that you can publish your topics in YaaS, and also provides guidelines to ensure your documentation follows the YaaS Style and Standards.
It is important to follow these requirements and guidelines so that there is consistency throughout all of the documentation. The goal is to have all contributors write in the same way to ensure a uniform flow throughout the website. For example:
These basic principals are explained in more detail in this guide, so read on for further information.
Definition of Done
In YaaS, the product is not done until the documentation is done. For instance, if you have a new service, feature, or solution to publish, you also need adequate documentation to release at the same time. This ensures readers fully understand the product and how to use it.
A product documentation review before publication ensures the content meets the requirements and guidelines. Each contributor allows time for a review cycle of the required documentation.
About the Style and Standards
The YaaS Style and Standards topic describes the grammar and word choices that give your documentation that special YaaS flavor and ensures that your content meets the requirements for publication on the Dev Portal. Because the Microsoft Manual of Style - 4th Edition (MMoS) is the selected style guide for the Dev Portal, this page documents only those standards that are applied differently, that the MMoS does not address, or that are specific only to YaaS. Search this page for any term to read about the standard.
Grammar
Item | YaaS Standard | Example |
---|---|---|
active voice vs. passive voice | Use active voice and present tense. |
|
articles | Always verify the use of the articles "a", "an", and "the" where appropriate. |
|
colon (:) vs. semicolon (;) | Use colons and semicolons sparingly. Use the colon ( : ) to introduce a list of things. The items after a colon are not complete sentences by themselves. The semicolon ( ; ) separates two distinct clauses within one sentence. The phrase after a semicolon is a complete sentence.
See the examples for ways to write the same sentence with and without a colon or semicolon. The preferred method for such a sentence is without a colon or semicolon. |
|
imperative mood | Use the imperative mood to write instructional documentation such as procedures and tutorials. The imperative mood tells the reader, directly, to do something. Other moods can imply optional behavior when you might not intend to present an action as optional. For example, in instructions for uploading documents, clicking Upload is not a suggested, optional action. If the document provides instructions for how to upload documents, assume the readers wants to perform that action. Do not use language such as, "If you want to upload a document, you can click Upload" or, "By clicking Upload, you can choose how many documents you want to upload." Instead write, "Click Upload and select one or more documents." |
|
pronouns | Use the second person and the pronouns "you," "your," and "yours" to speak directly to the reader. Do not use the first person pronouns "we," "us," or "let's." |
|
serial commas | Use serial commas. |
|
tenses: present, future, and conditional | Use present tense. In technical writing, present tense is easier to read than past or future tense. Simple verbs are easier to read and understand than complex verbs, such as verbs in the progressive or perfect tense. The more concise and straightforward you can be, the better. |
|
Preferred Terminology
Item | YaaS Standard | Example |
---|---|---|
a vs. the (for example, a cart vs. the cart) | Use "the cart" when you are talking about an example. Use "a cart" when you are talking about it as a non-specific, hypothetical cart. |
|
allow vs. enable vs. can | Do not use "enable" to refer to things that a program makes possible for the user if you can use "allow" or "you can" instead. Use "enable" to refer to active functionality that is available, or being made available, to a user. Use "allow" only to refer to features such as security that permit or deny some action to a user. |
|
American English vs. British English | The SAP Hybris standard is American English. Do not use British spelling in the documentation. |
|
app vs. application | Use "application." |
|
as shown below | Use "as shown in the example" instead of indicating direction, such as "above" or "below", whenever possible. This helps to ensure that there are no issues if the text is modified, rewritten, or reorganized. You can also write "the following" or "the preceding." |
|
back end vs. backend vs. back-end | Per the MMoS, use a more specific term when possible, such as server, operating system, database, or network. However, if you must use this term, use back end, two words, no hyphen, as a noun. Use back-end, hyphenated, as an adjective to modify a noun. Do not use "backend." |
|
because vs. since | Do not use "since" to mean "because."
|
|
by using vs. using | To avoid ambiguity for worldwide audiences, use "by using" instead of "using" by itself, even if the preposition seems unnecessary. However, in most cases, you can rewrite the sentence more directly, by highlighting the action verb in the sentence. For example, instead of writing "By using the backup utility to schedule regular backups, you can avoid data loss," use the strong verb "schedule", as shown in the example. |
|
can vs. may vs. might vs. could |
|
|
"Click Add" vs. "Click the Add button." | If the button has a label with text, use the label name without the word "button." If the button or icon does not have a text label, use a descriptive name with the word "button." Bold the label or icon name in both cases. |
|
data is vs. data are | Use "data is." You can use the word "data" as a singular or plural term, but always use it with a singular verb. That is, always write "data is", or another appropriate verb. Do not use "datum" or "data are." |
|
e-mail vs. email | Use "email" as a noun, not as a verb. For a verb form, use "send" instead. Do not write "e-mail" with a hyphen. |
|
ensure vs. insure vs. assure | In common English usage, "ensure," "insure," and "assure" are interchangeable in many situations. To provide consistency and to improve readability worldwide, use these distinctions:
|
|
etc. vs. and so forth vs. and so on vs. et al. | Do not use "etc." or "and so forth" or "and so on" or "et al." except in the specific situations listed here. Be specific about what you are describing.
|
|
fill in vs. complete | Use "fill in." |
|
id vs. ID | Use "ID," capitalized, as the abbreviation for "identification." "Id," or "id," has a different meaning in English. In YaaS documentation, "id" is only appropriate when you are documenting code, as shown in the second example. |
|
i.e. vs. e.g. vs. for example | Do not use i.e. or e.g. Use "that is" or "for example" instead. Depending on the context, "such as" may be appropriate, as well. Do not use "for example" in the middle of a sentence. Instead of "This smartphone has many uses, for example making calls, sending text messages, and taking pictures," provide the information in two sentences: "This smartphone has many uses. For example, it can make calls, send text messages, and take pictures." |
|
if vs. when vs. whenever vs. whether | To avoid ambiguity:
|
|
in vs. into |
|
|
key-value pairs | Use "key-value pairs." Do not write key/value, key value, or key:value. |
|
kind vs. type | Use "type." |
|
login, log in, log on, logon, sign in, and register | SAP Hybris standards use only "sign in," "sign out," and "register." To refer to creating or ending a user session on a computer or network, the MMoS standard is "log on" or "log off" or "log off from."
Do not use "log in," "login," "log onto," "log off of," "log out," "logout," "sign off," or "sign on" unless these terms appear in the user interface. |
|
once vs. after vs. when | To avoid ambiguity, especially for the worldwide audience, do not use "once" or "when" as synonyms for "after." For example:
|
|
per vs. for each | Use "per" in technical or statistical contexts, but use "for each" in other contexts. Do not use "per" to mean "by" or "in accordance with." For example:
When in doubt, don't use "per." |
|
plugin vs. plug-in | Hyphenate "plug-in." |
|
possible vs. can or cannot | Use "can" and "cannot." Do not write "it is possible" or "it is not possible." |
|
replace by vs. replace with | Use "replaces" or "replace with." Do not use "replace" as a noun. Instead of "replaced by," use "replace with" or "replaces" in active voice. For example, instead of "Version 1 is replaced by version 2," write "Version 2 replaces version 1." |
|
should vs. must vs. have to | While the MMoS advises using "should" only to describe a recommended, but optional, user action, "should" is ambiguous. When you write "should", it is not always clear whether the reader needs to perform an action. If it is recommended to back up files regularly, you can just say "Back up your files regularly." Then explain the potential danger of not backing up files.
|
|
simply | Do not use the word "simply" in documentation. Instead of "To complete this task, simply click ABC," eliminate the word "simply" and write "To complete this task, click ABC." |
|
single sign-on vs. single sign on | Use single sign on (SSO) to refer to authentication that allows a user to sign into multiple applications with one set of credentials. When referring to the act of signing in, write "sign in." |
|
Third-party names and acronyms | Refer to the originator's official documentation for the correct spelling and capitalization of third-party tools such as JavaScript, Enterprise JavaBeans (EJB), and cron. |
|
time-out vs. timeout | Use "time-out" as an adjective or noun. Do not hyphenate when using "time out" as a verb. |
|
topic vs. section in cross-references | Use "section." |
|
toward vs. towards | Use "toward." |
|
typically vs. usually | Use "typically."
|
|
uppercase vs. upper case lowercase vs. lower case | Write "uppercase" and "lowercase" as single words. |
|
upper right corner vs. upper-right corner | Hyphenate directional indicators such as "upper-right" and "lower-left." |
|
user vs. you | Use "you." YaaS documentation uses "you" extensively. This form is called second person or direct address. According to the MMoS, second person supports a friendly tone because it connects you with the reader. It also helps avoid passive voice because it focuses the discussion on the reader. |
|
username vs. user name | Use "user name" unless referring to an interface element or parameter name that uses the single word form username. |
|
utilize vs. use | Write "use." "Utilize", "utilizing", and "utilization" are typically unnecessary alternatives to "use", "using", and "use" or "usage", respectively. |
|
via | Do not use "via." Instead, write "through," "in," "using," "with," "by," or another appropriate American English term. |
|
We, us, let's, or our | Do not use "we," "us," "let's," or "our." Instead of "We released a new feature for the Email service," write "A new feature is available for the Email service." |
|
Voice and Tone
In YaaS, voice and tone standards apply to the different areas of
yaas.io
. First, it is important to understand the difference between voice and tone, and then follow the guidelines for writing content in the proper tone, depending on the destination for your documentation.
Difference between voice and tone
The difference between voice and tone can be a bit hard to differentiate at first. But think about the sound of your own voice, or a certain phrase that you use often. Those characteristics define your voice. When you address different people, or write documentation for different situations, you still have the same voice, but you might use a different tone. For instance, if you beat a friend in foosball, you might say, "I crushed you!" But if you beat your child at foosball, you might say, "Good game, kid."
Tones in YaaS
There are different tones for the different areas of theyaas.io
domain. The following describes the recommended tone to strive for in your documentation, based on its location in YaaS.Dev Portal
The Dev Portal docs can range from instructional to somewhat conversational, but always with the goal of helping users understand how to use YaaS for practical purposes and, in blogs and release notes, also helping business users understand changes so they can plan according to their business needs. The Dev Portal tone is:- Instructional and factual
- Detailed, with use cases and examples
Example
Use the Cart service to easily configure a retail cart service, for example, on a T-shirt web site. Call the Cart service endpoints to:- Create a new cart
- Add items to a cart
- Retrieve the details of items within a cart
See the Cart service tutorials for step-by-step instructions and request and response examples for each of these Cart service tasks. See the API Reference for the methods and API endpoints to use for each call.
About the Syntax Guidelines
These are the guidelines for using specific features, syntax, and elements in the Dev Portal and other areas in YaaS. For information on using the HTML or MD syntax itself, see the Syntax section of the Documentation SDK.
Basic Text Formatting
These are the guidelines for basic text formatting, such as when to use bullets or tables. In general, content is easier to read when it is in chunks. Consider breaking up endless paragraphs by using a list or table.
Ordered and unordered lists
As you write about your topic, use lists to create visual clarity within your content, listing items in a category or listing items in a sequence. Use an ordered, or numbered, list for sequential, instructional steps. Unordered lists are appropriate for list items that have no sequential order, such as a list of valid file types. Follow these guidelines for creating a list:
- Make list content consistent in structure. For example, make all the bullet points sentences, questions, or sentence fragments, but do not mix types.
- Punctuate bullet points consistently. If they are all sentences, use periods. If they are sentence fragments, do not use periods.
- Avoid ending bullet points with punctuation such as semicolons or commas.
- Capitalize the first letter of each bullet point consistently. Capitalize the first letter unless the list items are always lowercased, as with parameters names.
- Emphasize the beginning of the bullet point to capture the main idea.
- If readers must perform list items in order, as in a step-by-step procedure, use an ordered list, and maintain the consistency in structure.
Tables
Another effective way to chunk content is to use tables. Use them when content needs comparison, or as a way to provide information mapping. Think of a table as a list, but with optional columns to provide and organize more information than belongs in a list. Make sure tables are not too long or hard to read, causing the reader to scroll a lot. Break up a long table into multiple tables, if possible. For an example, see the Style and Standards tables.
Format-specific elements
The following tables outline when to use bold font and when to use code font:
Use bold font for these items:
Items | Examples |
---|---|
Parameters Events File names Path names Scopes UI Elements variables | The partial attribute is optional. The service publishes a password-reset-requested event. Open the pom.xml file. Save the file in the \services\repository\ folder. Use the hybris.profile_graph_view scope to view data in the graph. Click on Subscribe. Click Project > {Your Project Name}. Variables are also enclosed in single curly braces. |
Use code font for these items:
Items | Examples |
---|---|
Code examples Values Endpoints Status and error codes Parameter and value pairs | Verify the installation with the mvn help:system command.Set the partial attribute to true to perform a partial replacement.Send a POST request to the /{tenant}/categories/{categoryId}/media/{mediaId}/commit endpoint.A successful response includes a status code of 200 OK .To perform a partial replacement, include partial=true in your request. |
Dev Portal Elements
The YaaS documentation's Cascading Style Sheet (CSS) and other plug-ins control elements such as note panels and certain headings. These are the guidelines for using these styled elements. For information on using the HTML or MD syntax itself, see the Syntax section of the Documentation SDK.
Headings
Ideally, headings fit onto one line in the generated output, but balance brevity with a heading that adequately describes the main point of the document, section, or topic. Follow these guidelines when writing headings:
- Write headings within a document in sentence case. For example, Create a product category.
- In the Dev Portal, use present tense verbs in headings. For example, Add a document type.
- While gerunds are acceptable in body-level content, DO NOT use gerunds in headings, as in Creating a storefront.
- Avoid stacked headings, which are headings without body-level content in between. For example, DO NOT use a Heading 3 (H3) to introduce one or more H4s. Instead, add a paragraph after the H3 that describes the main idea of the content in the headings that follow.
- Heading 1 displays the name of a service, tool, or other main topic.
- Heading 2 displays the title of a document or section.
Partials
If you have content that you can use in multiple places, use partials. For instance, create a partial for your service URL, then use the partial in all your documentation. When your service URL updates to a new version, you only have to update the partial, not every piece of documentation.
Tooltips
You can use partials as tooltips. For example, in an API Glossary document. When you define a glossary term in the template provided, and use that partial in your document, the definition of the term appears when the reader's cursor hovers over the term. For example, YaaS. Use this feature to make it easier for your readers to understand your content, and follow these guidelines:
- Define terms that the average person is not familiar with, or is unique in your usage.
- Don't define terms that are commonplace.
- Use a tooltip on the first instance of the term on a page, not every time the term appears in the document.
For information on reusing content, see the Reuse Content section of the Documentation SDK.
Panels
You can highlight important information such as Note, Warning, Find Out More, and Tip content in special panels with different colors. For information on using the panel HTML or MD syntax, see Panels in the Syntax section of the Documentation SDK.
Use panels sparingly so that they make an impact. Multiple panels within one page view interrupts the content flow. Also, do not use panels as the first content in a document. Always precede panels with body-level text and use the panel to call attention to the preceding text. For example:
Linking
Linking is a great tool to use to incorporate a lot of content into your document with fewer words. That being said, overuse of linking can create "link rot" when links break, and if a page has more links than content, it is not very pleasing to read. Choose carefully when and how to link by using these best practices.
- Every link has the potential to go bad over time, and the more links you include, the higher the chance that one will break. If something is not central to the subject at hand, is well-known by your audience, or can be found with a simple search, there's no point in linking.
- For external links, link to the main page of the external website and then describe how to access the destination link. For example,
Go to the <a href="www.raml.org">RAML</a> website and click on the download link.
Main page URLs are less likely to change. - Choose the link text carefully. Don't link entire phrases which become overemphatic. Instead, choose the noun, such as an article or specification within the phrase that helps the reader understand where the navigation leads them. Or use the title of the article or book as the link, but don't include the author and publisher.
- Link to web pages instead of PDFs whenever possible.
- Don't include spaces or other characters in the link that require escape characters for translation.
- Check your links often to make sure they are still operational. There are free online tools to make it easier.
Good examples
- For more information about mixins, see the Operate on Mixins topic in the Document service documentation.
- See the YaaS in a Nutshell page for more information.
- The recommended reading is a book entitled Building Microservices by Sam Newman, O'Reilly Media.
For information on using the HTML or MD linking syntax itself, see the Syntax section of the Documentation SDK.
Images and Diagrams
As someone once said, a picture is worth a thousand words. That is true in YaaS documentation as well. Whenever possible, use a diagram, image, or screenshot to convey a lot of information visually. Follow these guidelines when placing a diagram, screenshot, or other image in your content. For information on using the HTML or MD syntax itself, see the Syntax section of the Documentation SDK.
Images and screenshots
Images and screenshots can quickly convey a lot of important information in your documentation. Do not use directional indicators, such as "above" and "below" to refer to images. Instead, include a brief introduction before each image that describes the purpose of the image and any necessary details. Do not overuse images such as including multiple screenshots of the same screen. Either condense them into one screenshot, or crop the images to show different areas. Follow the rest of these guidelines to make or use images, or capture screenshots:
- Make or capture your images using any tool that outputs high quality images, such as Snagit. The desired image format is SVG (vector), but PNG and JPG (raster) are acceptable.
- Use an online tool such as TinyPNG to compress images and limit the size of each image to 1MB, or smaller.
- By default, displayed images are sized automatically. If you want to control the size of the image relative to the screen size, use one of these standard percentages: 100%, 75%, 50%, or 25%.
- Most images are left-aligned, unless it is a special case, such as images in a table.
- Do not include the mouse pointer in your screenshots, unless it shows a function related to the content.
- To highlight certain areas of an image, crop the image, or use SAP Yellow (RGB: 240,171,0 or HEX: #F0AB00) for arrows or boxes around elements with a three point line width.
- The style sheets add a gray (#88929E) border with padding around your images by default.
- For multiple screenshots, use your best judgment as to whether you include one introduction, or whether you introduce each screenshot separately.
- Describe multiple areas using purple round stamps with white numbers. In Snagit, you can create a number in this style and add it to the quick styles menu:


See this example for the screenshot highlight, border, color, and clickable image guidelines:

Diagrams
Diagrams are a good way to show information flows or a configuration of a product's architecture. Use the Diagram editor as described in the Diagrams section of the Documentation SDK.
For information about the UI design guidelines, see the techné website.
Release Notes
Information in release notes must provide readers with everything they need to know to understand the change in the software. A lot of business decisions are made based on the information in release notes. Therefore, always write from the user’s perspective, not the developer’s perspective. The content of release notes answers the following questions:
- What changed because of this feature or resolved issue?
- How was the behavior different before this release?
- Are there changes to the UI?
- Are there changes to the functionality?
- Does an error message appear?
- Was the enhancement based upon customer feedback?
Prerequisites and requirements
First, make sure you understand the document metadata, the folder structure, and where to place release notes as described in the Documentation SDK.
Because the release notes contain critical information and act as an important communication tool, follow these guidelines so that the documentation is informative and consistent. When authoring release notes, follow the Styles and Standards for many agreed-upon standards, including word choices, use of acronyms, and product names.
Headlines
A headline is short, but interesting, and summarizes your release notes. Write headlines in sentence case.
Write about new features
When writing about new features, write an enticing paragraph instead of a short, bulleted list. This is an opportunity to market the new feature to customers from a business perspective.
Write about resolved issues
When writing about resolved issues, don't call them bugs. Use the term resolved issues because it has a more positive tone. A bulleted list of resolved issues is okay, but ensure that the descriptions make sense.
Bulleted lists
For ease of reading, use the same sentence structure throughout a bulleted list. For example, the following items match in sentence structure:
- Feature xyz – This one is really cool.
- Feature abc – This one is really, really, cool.
Don't add an entry that doesn't match, such as: - Feature JKL: it's not so cool
Examples
For examples of well-written release notes, see the Document service's release notes.
Filename
The filename for release notes for services and tools is in the format YYYY-MM-DD-ReleaseNotesServiceName.html.md. For example, 2016-02-09-ReleaseNotesEmail.html.md.
Version changes
For a new version of an existing service, such as a v2 or v3 release, use the template in this section for your release note, and make sure you include this information:
- The new version’s benefits and features, including one or more examples of how to use it
- When the old service version becomes deprecated, and how long users have to migrate
- How to migrate to the new service version
- Where to find more information on the new service version, typically a link to the the new version documentation in the Dev Portal
Release notes template
To write and publish release notes, copy the template shown in this section to the docu/release_notes directory, and follow the instructions inside the template. The images shown represent a release note for the Email service.
The first image represents the title box that displays on the Release Notes page and illustrates how the Dev Portal uses the date, headline, service, and official_version metadata:
The second image represents the actual release note after you click the title box, and illustrates how the Dev Portal uses the previous_version_shutdown_date metadata. This image also illustrates how to use Heading 3 as the first heading, followed by the body text:
Services
This page lists all of the required documents for services. Provide each of these documents before publishing your package so the purpose and use of each service is easy to understand. All of the documentation for services appears in the API Docs section of the Dev Portal. It is a good idea to familiarize yourself with the Service documentation before creating it. For information on how to build and publish documentation, see the Documentation SDK. When writing any documentation for YaaS, including API Documentation, follow the Styles and Standards.
Multiple versions of documentation
Because it is required to keep the previous version of a service available for three months after a new version releases, you must also keep the documentation for that version for that same period of time. Use the code in the registry sample file service-sample-simpleWithTwoVersions.json. The code creates a latest link in the URL to the latest version, and a drop-down menu next to the service name in the API documentation.
For an example of a service with multiple versions, see the Email service.
RAML file
YaaS services use the RESTful API Modeling Language (RAML) to describe their own APIs in a natural and intuitive way. Follow the API Guidelines and create consistent and straightforward RAML API definitions.
The Dev Portal uses the RAML file as the source for the automatic generation of the API Reference section in the API Docs. For a coherent user experience, include up-to-date examples and clear descriptions. Make the explanations concise and move the more extensive content to the Details or Tutorial section. Remember that the YaaS Style and Standards guidelines apply when you document your endpoints and methods in the RAML file:
- Focus on the user's task and avoid unnecessary words.
- Use second person, active voice, and present tense.
- Stick to the preferred terminology and format standards.
- Use appropriate articles and punctuation.
"Use the
/all
endpoint to return a list of all tenants for a given client."Expose the Service URL
Expose the Service URL because it is the key component of your service. The baseUri automatically generates based on the values provided in the registry JSON file for the following attributes:
- builder_identifier
- builder_org
- version
The values are added together in the following way:
https://api.yaas.io/{builder_org}/{builder_identifier}/{version}
To provide a custom baseUri, add a field called baseUri
to the JSON file, and the value from that field displayes in the Dev Portal. For example:
"baseUri": "https://api.stage.yaas.io/hybris/tax-avalara/v1"
The Dev Portal uses the baseURI in the following ways:
- It appears the top of the service documentation, in the SERVICE URL box.
- The API Console uses it to perform REST calls on the proper service instances.
- Partials in the documentation use thebaseURI to always refer to the latest service version's URL.
Learn more about partials by reading the Reuse Content section.
Overview document
The Overview document is concise and briefly describes the purpose and intended use of the service. Use the proper metadata as described in the Metadata section of the Documentation SDK. Make sure to include the following:
- Describe who might use the service and why.
- List the key features of the service in bullet points. Provide more in-depth information in the Details section. Do not explain RESTful API basic functions as a feature of the service.
- Describe how this service relates to other services, and describe any dependencies, including appropriate links to those dependencies.
- Optionally, list business examples.
- Optionally, list any prerequisites with a short description and relevant links to tutorials or documentation.
API Console and API Reference documents
If you follow the instructions to register your service in the Documentation SDK, the following occurs:
- The API Console link displays automatically in a yellow button at the top of the API documentation.
- The API Reference content and navigation node automatically generates. Even though this is automatically generated, check the RAML file to ensure it is up to date with samples and clear descriptions.
- A link to the API Reference appears at the bottom of each tutorial for more information about error messages, so make sure the RAML file also describes error messages.
- The RAML file is available at the top of the API documentation for users to copy or download. Make sure to put the
displayName:Managing Data
description under the root /resource in the RAML file. This display name is then visible instead of the root resource name.
false
in the registry JSON file, and neither the API Console or API Reference displays in the documentation. Also, set the baseUri attribute to Not applicable
to display this text instead of the link to the RAML file. See the JSON templates for more details. For an example, see the Profile Enricher documentation.If the API Console or API Reference is not available after following the registration instructions, check the following:
- The baseURI link to the service provided in the Dev Portal registry exists and is up to date with your service version.
- By default, the Dev Portal collects the first RAML file found in your project and uses it for generation. If you are using more then one RAML file in your project, specify which file to use in the registry.
- When including hybris traits in your RAML file, use the full URL including the HTTP or HTTPS protocol.
Events document
The Events document is required for services that use the PubSub service to broadcast events that other services can consume.
First, list the topic owner client above the table. This is one per service, such as hybris.authorization for the OAuth2 service. Then, in the table, list the event type, a description, the link to the schema, and a payload example. You do not need to explain how to consume the event.
Details document
The Details documentation contains more in-depth details about the service. Use the proper metadata as described in the Metadata section of the Documentation SDK. The details are listed in a logical order, starting with the architecture, scopes, and limitations of the service.
- Include a diagram of the service to illustrate the service execution flow, especially for complex services or a mashup.
- Define scopes for all services. List the information in a table, including the name of the scope and a short description of what the scope does.
- List any limitations of the service.
Give more details about the main features listed in the Overview, and any other features not listed. Each feature is described in a separate heading, and more complex details in sub-headings within the feature. Make sure to include the following:
- Describe the service in detail, including who would use it, when, and why.
- Include relevant use cases, describing any real world problems the service can solve.
- Explain any YaaS terms using the glossary feature, and add any relevant links to the tutorials or FAQs.
- List any considerations, tricks, or workarounds that help users make the most of using the service.
Tutorials
Tutorials in your documentation explain and demonstrate in step-by-step fashion how to use the service. Because the website navigation indicates that these documents are tutorials, the titles should be succinct. Do NOT include "How To" in the title.
The tutorials are targeted at developers with different amounts of experience with YaaS. For that reason, structure the tutorials so that a beginner can follow the most basic steps, and more experienced developers can learn more fine-grained details, such as troubleshooting or more use cases. Be sure to include the following:
- Title – Give the tutorial a descriptive title, without the words "How To".
- Introduction – Introduce each tutorial separately, or as a whole. Be sure to explain any common use-case theme, such as a certain store name with certain products for sale. Also, state the objective of the tutorials and any prerequisites.
- Step-by-step – Include detailed steps in a quick start guide, or create detailed, interactive steps.
- Request and response examples - If you include a sample request, list optional and required attributes separately in the request body.
- Errors – At the end of the tutorial, use the errors_global.html.md partial which inserts the wording, "For more information about error codes, see the API Reference."
- Optional troubleshooting - Besides providing the error codes, give tips on how to troubleshoot a problem after receiving an error.
- Optional use cases – Show more than one use case to highlight different features.
Security document
The Security document is required only for services with data protection requirements that are not supported locally. This document contains all of the details needed to ensure data privacy, which varies from service to service.
Refer to the documentation for the Document service and the Document Backup service for examples.
Glossary document
Use the Glossary to define terms that are specific to each service. The Glossary generates at the bottom of each API document, after the tutorials. A glossary term should be succinct, and no more than a sentence long so that it displays nicely as a tooltip.
To add a term to the glossary:
- Create the docu/partials directory if it doesn’t already exist.
- In the partials directory, create an HTML file in the form, servicename_term.html. For example: avalaratax_avalara.html
- Use only the metadata provided in the template, and note the spaces after each
:
.
By default, a term in the glossary table renders exactly how it is typed in the term metadata. To render the term with an initial capital letter instead, change the lock_case metadata to true
. For example:
term: mixin
lock_case: false
(default) = mixin
orlock_case: true
= Mixin
After creating a partial for the glossary term, you can use it in your documentation with the partial code, as described in the Reuse Content section of the Documentation SDK. For example, if you include <%- @partial('avalaratax_avalara') %>
in your document, the result is:Avalara
Any documents containing partials must have a .eco
extension. For example: overview.html.eco or overview.html.md.eco.
Solutions
YaaS is a platform to build any kind of solution, not just APIs or tools. Single cloud solutions are based on one or more YaaS Market packages. They require proper architectural documentation so your subscribers understand which packages implement each piece of functionality. The Solutions documentation also includes details about extensibility, customization, and what functionality the subscriber can unplug and replace with the subscriber's own solutions. The Dev Portal has a dedicated space for Solutions documentation.
Follow the Styles and Standards for many agreed-upon standards, including word choices, use of acronyms, and the SAP Hybris product names.
Overview
In the first document, add a short introduction that explains the nature of your solution and what business value it brings to the reader. Add a list of features that the solution implements.
Package list
Add a section that informs the user about the packages and services your solution includes, such as this example shows:
Packages | Services |
---|---|
First Package | Service A |
Second Package | Service A Service B |
Details
This section describes the details of your solution in a logical order. For example, provide a Getting Started Guide, any integration instructions, and add a Troubleshooting section.
Structure documents in the navigation
Group documents of the same type and create the left-hand navigation as described in the Documentation SDK.
Example
For an example of unique solution documentation, see the SAP Hybris Profile documentation.
If you find any information that is unclear or incorrect, please let us know so that we can improve the Dev Portal content.
Use our private help channel. Receive updates over email and contact our specialists directly.
If you need more information about this topic, visit hybris Experts to post your own question and interact with our community and experts.