Home
APIs.json
Common
Community
Overlays
Base
Blueprints
Rules
Rulesets
About
Base APIs.json Train Travel
This is the APIs.json ruleset for the Train Travel base.
"apis-json-name-error": {"description":"The name of an APIs.json file is different than the name of your API, and is intended to describe the purpose of the APIs.json artifact, and what it provides for API producers, consumers, and other stakeholders. The name should be short and concise, describing the intent in bringing the the collection together, leaving the names of APIs to describe what each API does. You can find details about the
names property for APIs.json
, and explore
APIs.json names
more via API Evangelist.","message":"There MUST be a name.","severity":"error","given":"$","then":{"field":"name","function":"truthy"}},"apis-json-name-info": {"description":"The name of an APIs.json file is different than the name of your API, and is intended to describe the purpose of the APIs.json artifact, and what it provides for API producers, consumers, and other stakeholders. The name should be short and concise, describing the intent in bringing the the collection together, leaving the names of APIs to describe what each API does. You can find details about the
names property for APIs.json
, and explore
APIs.json names
more via API Evangelist.","message":"There is a name.","severity":"info","given":"$","then":{"field":"name","function":"falsy"}},"apis-json-description-error": {"description":"The description property is where you provide full details the purpose an APIs.json serves. This description is likely more higher level than any of the descriptions for any single API, and be more about the contract, index, blueprint, or the other reasons why the APIs.json is of value. Don't make the description too long, but also don't make it too short--it is likely the first impression you will make via portals, repos, and other ways an APIs.json will be discovered. You can find details about the
description property for APIs.json
, and explore
APIs.json
more via API Evangelist.","message":"There MUST be a description.","given":"$","severity":"error","then":{"field":"description","function":"truthy"}},"apis-json-description-info": {"description":"The description property is where you provide full details the purpose an APIs.json serves. This description is likely more higher level than any of the descriptions for any single API, and be more about the contract, index, blueprint, or the other reasons why the APIs.json is of value. Don't make the description too long, but also don't make it too short--it is likely the first impression you will make via portals, repos, and other ways an APIs.json will be discovered. You can find details about the
description property for APIs.json
, and explore
APIs.json
more via API Evangelist.","message":"There is a description.","given":"$","severity":"info","then":{"field":"description","function":"falsy"}},"apis-json-image-error": {"description":"Images for APIs.json help make them more visible when rendered as a search or individual node, used as part of an API portal, or other ways. The image should represent the entity logo, line of business, or other meaningful visual representation of the bounded context represented within the APis.json. You can find details about the
images property for APIs.json
, and explore
using images
more via API Evangelist.","message":"There MUST be an image.","given":"$","severity":"error","then":{"field":"image","function":"truthy"}},"apis-json-image-info": {"description":"Images for APIs.json help make them more visible when rendered as a search or individual node, used as part of an API portal, or other ways. The image should represent the entity logo, line of business, or other meaningful visual representation of the bounded context represented within the APis.json. You can find details about the
images property for APIs.json
, and explore
using images
more via API Evangelist.","message":"There is an image.","given":"$","severity":"info","then":{"field":"image","function":"falsy"}},"apis-json-specification-aid-error": {"description":"Ensures that each APIs.json has a unique identifier expressed as an `aid`. APIs.json identifiers are a standardized format for allowing API producers to establish a unique identifier for each API contract they provide using APIs.json, which will then be prepended to each APIs defined. You can find details about the standard for APIs.json unique identifier on API Commons [need link], and explore
APIs.json Unique Identifiers
via API Evangelist.","message":"There MUST be a aid.","severity":"error","given":"$","then":{"field":"aid","function":"truthy"}},"apis-json-specification-aid-info": {"description":"Ensures that each APIs.json has a unique identifier expressed as an `aid`. APIs.json identifiers are a standardized format for allowing API producers to establish a unique identifier for each API contract they provide using APIs.json, which will then be prepended to each APIs defined. You can find details about the standard for APIs.json unique identifier on API Commons [need link], and explore
APIs.json Unique Identifiers
via API Evangelist.","message":"There is an aid.","severity":"info","given":"$","then":{"field":"aid","function":"falsy"}},"apis-json-url-error": {"description":"The URL for an APIs.json provides a link to the source of an APIs.json, but also determines whether or not an APIs.json is authoritative or not. The URL is a locator, but can also be used as an identifier that can be used to ensure the authenticity and origin of APIs.json. The URL is regularly validated as part of API operations and the solutions using the APIs.json. You can find details about the
url property for APIs.json
.","message":"There MUST be a URL.","given":"$","severity":"error","then":{"field":"url","function":"truthy"}},"apis-json-url-info": {"description":"The URL for an APIs.json provides a link to the source of an APIs.json, but also determines whether or not an APIs.json is authoritative or not. The URL is a locator, but can also be used as an identifier that can be used to ensure the authenticity and origin of APIs.json. The URL is regularly validated as part of API operations and the solutions using the APIs.json. You can find details about the
url property for APIs.json
.","message":"There is a URL.","given":"$","severity":"info","then":{"field":"url","function":"falsy"}},"apis-json-created-error": {"description":"The created property is all about setting the timestamp for when an APIs.json index, contract, or other type is established--drawing a line in the sand for when everything started. The created property works in concert with the modified property and other change manage properties to understand and get a handle on the inevitable change that occurs across any API platform. You can find details about the
created property for APIs.json
, and explore
how created property is used to manage change
more via API Evangelist.","message":"There MUST be a created date.","given":"$","severity":"error","then":{"field":"created","function":"truthy"}},"apis-json-created-info": {"description":"The created property is all about setting the timestamp for when an APIs.json index, contract, or other type is established--drawing a line in the sand for when everything started. The created property works in concert with the modified property and other change manage properties to understand and get a handle on the inevitable change that occurs across any API platform. You can find details about the
created property for APIs.json
, and explore
how created property is used to manage change
more via API Evangelist.","message":"There is a created date.","given":"$","severity":"info","then":{"field":"created","function":"falsy"}},"apis-json-modified-error": {"description":"The modified property of an APIs.json is meant to be updated with the date of when any changes were made to the contract or index. The modified properties works in concert with the created property, as well as other change management properties employed to help get a handle on the changes that are inevitable across API operations. You can find details about the
modified property for APIs.json
, and explore
modified property and change management
more via API Evangelist.","message":"There COULD be a modified date.","given":"$","severity":"warn","then":{"field":"modified","function":"truthy"}},"apis-json-modified-info": {"description":"The modified property of an APIs.json is meant to be updated with the date of when any changes were made to the contract or index. The modified properties works in concert with the created property, as well as other change management properties employed to help get a handle on the changes that are inevitable across API operations. You can find details about the
modified property for APIs.json
, and explore
modified property and change management
more via API Evangelist.","message":"There is a modified date.","given":"$","severity":"info","then":{"field":"modified","function":"falsy"}},"apis-json-specification-type-error": {"description":"The specification type for an APIs.json sets the tone for how the APIs.json will be processed, providing a way to namespace different ways of leveraging the machine-readable contents of the APIs/json. The most common is a simple index of one or many APIs, but originally templates and examples were also allowed. Contracts, blueprints, and a handful of other types have recently been added, expanding the ways in which the APIs.json specification can be used beyond just API discovery. You can find details about the
type property for APIs.json
.","message":"There MUST be a specification type.","severity":"error","given":"$","then":{"field":"type","function":"truthy"}},"apis-json-specification-type-info": {"description":"The specification type for an APIs.json sets the tone for how the APIs.json will be processed, providing a way to namespace different ways of leveraging the machine-readable contents of the APIs/json. The most common is a simple index of one or many APIs, but originally templates and examples were also allowed. Contracts, blueprints, and a handful of other types have recently been added, expanding the ways in which the APIs.json specification can be used beyond just API discovery. You can find details about the
type property for APIs.json
.","message":"There is a specification type.","severity":"info","given":"$","then":{"field":"type","function":"falsy"}},"apis-json-specification-version-error": {"description":"The specification version of an APIs.json defines what properties are supported by the APIs.json artifact. New core properties, as well as property types are being added with each version to support a variety of solutions, and expand how APIs.json is used across API operations. You can find details about the
specification version property for APIs.json
.","message":"There MUST be a specification version.","severity":"error","given":"$","then":{"field":"specificationVersion","function":"truthy"}},"apis-json-specification-version-info": {"description":"The specification version of an APIs.json defines what properties are supported by the APIs.json artifact. New core properties, as well as property types are being added with each version to support a variety of solutions, and expand how APIs.json is used across API operations. You can find details about the
specification version property for APIs.json
.","message":"There is a specification version.","severity":"info","given":"$","then":{"field":"specificationVersion","function":"falsy"}},"apis-json-tags-error": {"description":"Tags applied to an APIs.json should provide a handful of high-level tags that describe the purpose and intent of an APIs.json. These could be tags that describe the search node, or tags specifically for the individual APIs that are of concern for a specific API contract between producer and consumer. Tags provide the bounded context needed to help make APIs more tangible and meaningful for both API producers and consumers. You can find details about the
tags property for APIs.json
, and explore
tagging
more via API Evangelist.","message":"There MUST be a tags object..","given":"$","severity":"error","then":{"field":"tags","function":"truthy"}},"apis-json-tags-one-error": {"description":"Tags applied to an APIs.json should provide a handful of high-level tags that describe the purpose and intent of an APIs.json. These could be tags that describe the search node, or tags specifically for the individual APIs that are of concern for a specific API contract between producer and consumer. Tags provide the bounded context needed to help make APIs more tangible and meaningful for both API producers and consumers. You can find details about the
tags property for APIs.json
, and explore
tagging
more via API Evangelist.","message":"There MUST be at least one tag.","given":"$","severity":"error","then":{"field":"tags","function":"length","functionOptions":{"min":1}}},"apis-json-tags-info": {"description":"Tags applied to an APIs.json should provide a handful of high-level tags that describe the purpose and intent of an APIs.json. These could be tags that describe the search node, or tags specifically for the individual APIs that are of concern for a specific API contract between producer and consumer. Tags provide the bounded context needed to help make APIs more tangible and meaningful for both API producers and consumers. You can find details about the
tags property for APIs.json
, and explore
tagging
more via API Evangelist.","message":"There is a tags object.","given":"$","severity":"info","then":{"field":"tags","function":"falsy"}},"apis-json-tags-upper-case-error": {"description":"Tags are useful for defining the bounded context of API operations, and it helps to ensure they are consistently capitalized for better display within documentation and other resources. Emsuring that the first letter is upper cased, acronyms properly cased, and other terms, helps make sure things are readable, and act as a vocabulary for API operations. You can find details about the
tags property for APIs.json
, and explore
tagging
more via API Evangelist.","message":"Tags Upper Case","severity":"error","given":"$.tags.*","then":{"function":"pattern","functionOptions":{"match":"[A-Z]\\w*"}}},"apis-json-tags-upper-case-info": {"description":"Tags are useful for defining the bounded context of API operations, and it helps to ensure they are consistently capitalized for better display within documentation and other resources. Emsuring that the first letter is upper cased, acronyms properly cased, and other terms, helps make sure things are readable, and act as a vocabulary for API operations. You can find details about the
tags property for APIs.json
, and explore
tagging
more via API Evangelist.","message":"Tags Upper Case","severity":"info","given":"$.tags.*","then":{"function":"pattern","functionOptions":{"notMatch":"[A-Z]\\w*"}}},"apis-json-maintainers-email-error": {"description":"The maintainers email is to provide a quick way to contact the maintainer of an APIs.json contract. The email is just one of multiple vCard properties that can exist, but provides the simplest way to engage with stakeholders involved in maintaining an APIs.json artifact. You can find details about the
maintainers email property for APIs.json
, and explore
email support
more via API Evangelist.","message":"There MUST be an email property for maintainers.","given":"$.maintainers.*","severity":"error","then":{"field":"email","function":"truthy"}},"apis-json-maintainers-email-info": {"description":"The maintainers email is to provide a quick way to contact the maintainer of an APIs.json contract. The email is just one of multiple vCard properties that can exist, but provides the simplest way to engage with stakeholders involved in maintaining an APIs.json artifact. You can find details about the
maintainers email property for APIs.json
, and explore
email support
more via API Evangelist.","message":"There is a email property for maintainers.","given":"$.maintainers.*","severity":"info","then":{"field":"email","function":"falsy"}},"apis-json-maintainers-fn-error": {"description":"The purpose of the FN is to specify the formatted text corresponding to the contact name in the vCard for an APIs.json contract or index. It could be a persons name or wider for a domain, team, or other bounded context, providing the reference needed for support or feedback. You can find details about the
API contact property for APIs.json
, and explore
support name
more via API Evangelist.","message":"There MUST be a FN property for maintainers.","given":"$.maintainers.*","severity":"error","then":{"field":"FN","function":"truthy"}},"apis-json-maintainers-fn-info": {"description":"The purpose of the FN is to specify the formatted text corresponding to the contact name in the vCard for an APIs.json contract or index. It could be a persons name or wider for a domain, team, or other bounded context, providing the reference needed for support or feedback. You can find details about the
API contact property for APIs.json
, and explore
support name
more via API Evangelist.","message":"There is a FN property for maintainers.","given":"$.maintainers.*","severity":"info","then":{"field":"FN","function":"falsy"}},"apis-json-maintainers-error": {"description":"The maintainers property is for identifying the entity who is maintaining an APIs.json contract, index, or other type. The maintainer may or may not be an API producer, and the maintainer property is used to provide access to the contact information for the maintainer, but is also used to validate the authoritative nature of the contract itself. You can find details about the
maintainers property for APIs.json
, and explore
support
more via API Evangelist.","message":"There MUST be a maintainer object.","given":"$","severity":"error","then":{"field":"maintainers","function":"truthy"}},"apis-json-maintainers-info": {"description":"The maintainers property is for identifying the entity who is maintaining an APIs.json contract, index, or other type. The maintainer may or may not be an API producer, and the maintainer property is used to provide access to the contact information for the maintainer, but is also used to validate the authoritative nature of the contract itself. You can find details about the
maintainers property for APIs.json
, and explore
support
more via API Evangelist.","message":"There is a maintainer object.","given":"$","severity":"info","then":{"field":"maintainers","function":"falsy"}},"apis-json-apis-aid-error": {"description":"This property ensures that each APIs indexed within an APIs.json can have a unique identifier expressed as an `aid`. API identifiers (AID) are a standardized format for allowing API producers to establish a unique identifier for each API they publish using APIs.json, which will have the aid for the APIs.json prepended to each APIs aid. You can find details about the
aid property for APIs.json
, and explore
API Unique Identifiers
more via API Evangelist.","message":"APIs MUST have a aid property.","given":"$.apis.*","severity":"error","then":{"field":"aid","function":"truthy"}},"apis-json-apis-aid-info": {"description":"This property ensures that each APIs indexed within an APIs.json can have a unique identifier expressed as an `aid`. API identifiers (AID) are a standardized format for allowing API producers to establish a unique identifier for each API they publish using APIs.json, which will have the aid for the APIs.json prepended to each APIs aid. You can find details about the
aid property for APIs.json
, and explore
API Unique Identifiers
more via API Evangelist.","message":"API has an aid property.","given":"$.apis.*","severity":"info","then":{"field":"aid","function":"falsy"}},"apis-json-apis-name-error": {"description":"The name of your API is one of the most important design decision you can make, and will be one you will have to live with throughout the life of your API. Take the time to make sure the API accurately describes the API, and avoid using common words about the patterns and infrastructure used--keep the name of the API simple, easy to read, and meaningful to the consumer of the API. You can find details about the
name property for APIs.json
, and explore
API names
more via API Evangelist.","message":"APIs MUST have a name.","given":"$.apis.*","severity":"error","then":{"field":"name","function":"truthy"}},"apis-json-apis-name-info": {"description":"The name of your API is one of the most important design decision you can make, and will be one you will have to live with throughout the life of your API. Take the time to make sure the API accurately describes the API, and avoid using common words about the patterns and infrastructure used--keep the name of the API simple, easy to read, and meaningful to the consumer of the API. You can find details about the
name property for APIs.json
, and explore
API names
more via API Evangelist.","message":"API has a name.","given":"$.apis.*","severity":"info","then":{"field":"name","function":"falsy"}},"apis-json-apis-description-error": {"description":"The description of each API is how you make your first impression on consumers, and is what will likely show in portals, networks, search, and other ways that API consumers discover APIs and onboard with them. Make the description of an API talk about what it does, and the value it brings to consumers, not about the structure and standards used--those can be expressed in other ways. You can find details about the
description property for APIs.json
, and explore
API descriptons
more via API Evangelist.","message":"APIs MUST have a description.","given":"$.apis.*","severity":"error","then":{"field":"description","function":"truthy"}},"apis-json-apis-description-info": {"description":"The description of each API is how you make your first impression on consumers, and is what will likely show in portals, networks, search, and other ways that API consumers discover APIs and onboard with them. Make the description of an API talk about what it does, and the value it brings to consumers, not about the structure and standards used--those can be expressed in other ways. You can find details about the
description property for APIs.json
, and explore
API descriptons
more via API Evangelist.","message":"API has a description.","given":"$.apis.*","severity":"info","then":{"field":"description","function":"falsy"}},"apis-json-apis-image-error": {"description":"A dedicated image for each API, providing a visual representation of the resource or capability being made available via an API helps make it more approachable and visually appealing in portals, documentation, and via other content format. Images should be simple, consistent, and should avoid just being company logos and other less precise visual representations. You can find details about the
images property for APIs.json
, and explore
API images
more via API Evangelist.","message":"APIs MUST have an image.","given":"$.apis.*","severity":"error","then":{"field":"image","function":"truthy"}},"apis-json-apis-image-info": {"description":"A dedicated image for each API, providing a visual representation of the resource or capability being made available via an API helps make it more approachable and visually appealing in portals, documentation, and via other content format. Images should be simple, consistent, and should avoid just being company logos and other less precise visual representations. You can find details about the
images property for APIs.json
, and explore
API images
more via API Evangelist.","message":"API has an image.","given":"$.apis.*","severity":"info","then":{"field":"image","function":"falsy"}},"apis-json-apis-humanURL-error": {"description":"The human URL for an API provides a link for any business or technical consumer to use when learning more about an API and onboarding with it. In some cases it can be directly to documentation, but ideally each API has its own landing page with a simple and intuitive URL, and has links to all of the properties API consumers will need for an API. You can find details about the
humanUrl property for APIs.json
, and explore
Human URLs
more via API Evangelist.","message":"APIs MUST have a human URL.","given":"$.apis.*","severity":"error","then":{"field":"humanURL","function":"truthy"}},"apis-json-apis-humanURL-info": {"description":"The human URL for an API provides a link for any business or technical consumer to use when learning more about an API and onboarding with it. In some cases it can be directly to documentation, but ideally each API has its own landing page with a simple and intuitive URL, and has links to all of the properties API consumers will need for an API. You can find details about the
humanUrl property for APIs.json
, and explore
Human URLs
more via API Evangelist.","message":"APIs has a human URL.","given":"$.apis.*","severity":"info","then":{"field":"humanURL","function":"falsy"}},"apis-json-apis-baseURL-error": {"description":"This is the base URL used for an API defined using APIs.json, providing a reference for developers to use when onboarding and making calls to an API, but it is also used as a way of referencing an API, and validating what domain it is part of. You can find details about the
baseUrl property for APIs.json
, and explore
Base URLs
more via API Evangelist.","message":"APIs MUST have a baseUrl property.","given":"$.apis.*","severity":"error","then":{"field":"baseURL","function":"truthy"}},"apis-json-apis-baseURL-info": {"description":"This is the base URL used for an API defined using APIs.json, providing a reference for developers to use when onboarding and making calls to an API, but it is also used as a way of referencing an API, and validating what domain it is part of. You can find details about the
baseUrl property for APIs.json
, and explore
Base URLs
more via API Evangelist.","message":"APIs has a baseUrl property.","given":"$.apis.*","severity":"info","then":{"field":"baseURL","function":"falsy"}},"apis-json-apis-error": {"description":"The APIs property provides the ability to define one or many APIs, as part of a larger collection or contract. What constitutes an API s up to the maintainer of the collection, and will vary depending on what the APIs.json contract is defining between producer and consumer. Depending on the scope of an API the sweet spot for the number of APIs is about 250, but could go up to 300 or 400 when necessary, keeping API definitions serving the purpose of the APIs.json artifact. You can find details about the
baseUrl property for APIs.json
, and explore
APIs
more via API Evangelist.","message":"There MUST be an APIs property.","given":"$","severity":"error","then":{"field":"apis","function":"truthy"}},"apis-json-apis-info": {"description":"The APIs property provides the ability to define one or many APIs, as part of a larger collection or contract. What constitutes an API s up to the maintainer of the collection, and will vary depending on what the APIs.json contract is defining between producer and consumer. Depending on the scope of an API the sweet spot for the number of APIs is about 250, but could go up to 300 or 400 when necessary, keeping API definitions serving the purpose of the APIs.json artifact. You can find details about the
baseUrl property for APIs.json
, and explore
APIs
more via API Evangelist.","message":"There is an APIs property.","given":"$","severity":"info","then":{"field":"apis","function":"falsy"}},"apis-json-common-error": {"description":"The common property is where all of the properties that apply across multiple APIs are stored. If the APIs.json is maintained by the API producer they are usually the common services supported via the developer portal, but if not, they could be external services offered by community, platform, or other entities. You can find details about the
baseUrl property for APIs.json
, and explore
common discovery properties
more via API Evangelist.","message":"There MUST be a common property.","given":"$","severity":"error","then":{"field":"common","function":"truthy"}},"apis-json-common-info": {"description":"The common property is where all of the properties that apply across multiple APIs are stored. If the APIs.json is maintained by the API producer they are usually the common services supported via the developer portal, but if not, they could be external services offered by community, platform, or other entities. You can find details about the
baseUrl property for APIs.json
, and explore
common discovery properties
more via API Evangelist.","message":"There is an common property.","given":"$","severity":"info","then":{"field":"common","function":"falsy"}},"apis-json-apis-properties-documentation-info": {"description":"API Properties Documentation","message":"There is a documentation property.","severity":"info","given":["$.apis.*.properties.*","$.common.*"],"then":[{"field":"type","function":"pattern","functionOptions":{"notMatch":"\\b(documentation|Documentation)\\b"}}]},"apis-json-apis-properties-url-info": {"description":"API Properties URL","message":"API Properties URL","severity":"info","given":["$.apis.*.properties.*","$.common.*"],"then":[{"field":"url","function":"pattern","functionOptions":{"notMatch":"^((http|https)://)[-a-zA-Z0-9@:%._\\+~#?&//=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%._\\+~#?&//=]*)$"}}]},"apis-json-apis-contact-error": {"description":"The contact object provides the ability to associate a vCard that represents an individual or any organization entity with common contact information like a name, email, or other reference, providing a standardized way of supporting an API. You can find details about the
API contact property for APIs.json
, and explore
support contact
more via API Evangelist.","message":"API COULD have a contact.","severity":"warn","given":["$.apis.*"],"then":{"field":"contact","function":"truthy"}},"apis-json-apis-contact-info": {"description":"The contact object provides the ability to associate a vCard that represents an individual or any organization entity with common contact information like a name, email, or other reference, providing a standardized way of supporting an API. You can find details about the
API contact property for APIs.json
, and explore
support contact
more via API Evangelist.","message":"API has a contact.","severity":"info","given":["$.apis.*"],"then":{"field":"contact","function":"falsy"}},"apis-json-apis-contact-email-error": {"description":"Providing an email address is a quick way to provide support for each API being indexed. Depending on whether it is public or private, the email may be an individual or wider, and associated with a team. You can find details about the
API contact property for APIs.json
, and explore
support emails
more via API Evangelist.","message":"API contact COULD have email.","given":"$.apis.*.contact.*","severity":"error","then":{"field":"email","function":"truthy"}},"apis-json-apis-contact-email-info": {"description":"Providing an email address is a quick way to provide support for each API being indexed. Depending on whether it is public or private, the email may be an individual or wider, and associated with a team. You can find details about the
API contact property for APIs.json
, and explore
support emails
more via API Evangelist.","message":"API contact has email.","given":"$.apis.*.contact.*","severity":"info","then":{"field":"email","function":"falsy"}},"apis-json-apis-contact-fn-error": {"description":"The purpose of the FN is to specify the formatted text corresponding to the contact name in the vCard for an API. It could be a persons name or wider for a domain, team, or other bounded context, providing the reference needed for support or feedback. You can find details about the
API contact property for APIs.json
, and explore
support name
more via API Evangelist.","message":"API contact COULD have FN.","given":"$.apis.*.contact.*","severity":"error","then":{"field":"FN","function":"truthy"}},"apis-json-apis-contact-fn-info": {"description":"The purpose of the FN is to specify the formatted text corresponding to the contact name in the vCard for an API. It could be a persons name or wider for a domain, team, or other bounded context, providing the reference needed for support or feedback. You can find details about the
API contact property for APIs.json
, and explore
support name
more via API Evangelist.","message":"API contact has FN.","given":"$.apis.*.contact.*","severity":"info","then":{"field":"FN","function":"falsy"}},"apis-json-apis-tags-error": {"description":"Tags for API","message":"APIs MUST have a tags object.","given":"$.apis.*","severity":"error","then":{"field":"tags","function":"truthy"}},"apis-json-apis-tags-one-error": {"description":"One Tag for API","message":"Having at least one tag for your APIs helps ensure that it will be more discoverable.","given":"$.apis.*","severity":"error","then":{"field":"tags","function":"length","functionOptions":{"min":1}}},"apis-json-apis-tags-info": {"description":"Tags for API","message":"API has tags object.","given":"$.apis.*","severity":"info","then":{"field":"tags","function":"falsy"}},"apis-json-apis-tags-upper-case-error": {"description":"Upper Case Tag for API","message":"API Tags Upper Case","severity":"error","given":"$.apis.*.tags.*","then":{"function":"pattern","functionOptions":{"match":"[A-Z]\\w*"}}},"apis-json-apis-tags-upper-case-info": {"description":"Upper Case Tag for API","message":"API Tags Upper Case","severity":"info","given":"$.apis.*.tags.*","then":{"function":"pattern","functionOptions":{"notMatch":"[A-Z]\\w*"}}},
Back to All of the Rulesets