anchor.diff:  ==== Vendor extensions
   You can add more information to OpenAPI specifications about your API by using a specific extension.
   To do this, you need to add the `x-graviteeio-definition` field in the root of the specification.
  -The value of this field is an Object that follows this link:https://raw.githubusercontent.com/gravitee-io/gravitee-management-rest-api/master/gravitee-rest-api-service/src/main/resources/schema/xGraviteeIODefinition.json[JSON Schema, window="_blank"]
  +The value of this field is an `object` that follows this link:https://raw.githubusercontent.com/gravitee-io/gravitee-management-rest-api/gravitee-rest-api-service/src/main/resources/schema/xGraviteeIODefinition.json[JSON Schema, window="_blank"]
   
   [NOTE]
   ====
  
positive.code: * `picture` only accepts Data-URI format (see example below).
  ====
  
  Here's an example
  ```yaml
  openapi: "3.0.0"
  info:
  
negative.code: You can also choose to activate policies that will be configured using the OpenAPI specification.
  
  JSON Validation::
  For each operation, if an `application/json` request body exists, then a JSON schema is computed from this body to configure a JSON Validation policy. +
  REQUEST only +
  More information is available link:/apim/3.x/apim_policies_json_validation.html[here].
  
  REST to SOAP transformer::
  For each operation, if the definition contains some specific vendor extensions, a REST to SOAP policy can be configured. +
  These extensions are:
  - `x-graviteeio-soap-envelope`: contains the SOAP envelope
  - `x-graviteeio-soap-action`: contains the SOAP action
  +
  REQUEST only +
  More information is available link:/apim/3.x/apim_policies_rest2soap.html[here].
  
  Mock::
  For each operation, a mock policy is configured, based on the `example` field if it exists, or by generating a random value for the type of the attribute to mock. +
  REQUEST only +
  More information is available link:/apim/3.x/apim_policies_mock.html[here].
  
  Validation Request::
  For each operation, `NOT__ __NULL` rules are created with query parameters and headers. +
  REQUEST only +
  More information is available link:/apim/3.x/apim_policies_request_validation.html[here]-
  
  XML Validation::
  For each operation, if a `application/xml` request body exists, then a XSD schema is computed from this body to configure an XML Validation policy. +
  REQUEST only +
  More information is available link:/apim/3.x/apim_policies_xml_validation.html[here].
  
  === Import a WSDL
  
  APIM can import a WSDL to create an API. This means you do not have to declare all the routing and policies to interact with your service.
  
  To import an API from a WSDL:
  
  * If the WSDL is a file, select *IMPORT FILE* and browse your file system to select it.
  * If the WSDL is a link, select *IMPORT FROM LINK*, choose *WSDL* and enter the definition URL.
  
  image::apim/3.x/api-publisher-guide/manage-apis/graviteeio-import-wsdl-rest-to-soap-options.png[Import from WSDL link]
  
  If you select the option *Apply REST to SOAP Transformer policy* in addition to the option *Create policies on path* in the import form, a REST-To-SOAP policy will be generated for each path. These policies provide a SOAP envelope for each method with sample data that you can change using expression language. An XML-to-JSON policy will also be generated to convert the entire SOAP response to JSON format.
  
  image::apim/3.x/api-publisher-guide/manage-apis/graviteeio-import-wsdl-rest-to-soap-policy.png[WSDL REST to SOAP policy]
  
  == Organize your APIs into categories
  You can create _categories_ to group APIs. The purpose of categories is to group APIs so consumers can easily find the APIs they need in APIM Portal.
  
  image::apim/3.x/api-publisher-guide/manage-apis/graviteeio-manage-apis-categories-1.png[]
  
  You can describe a category with the following characteristics:
  
  - Name
  - Description
  - Picture
  - Markdown page as documentation
  
  image::apim/3.x/api-publisher-guide/manage-apis/graviteeio-manage-apis-categories-2.png[]
  
  Once you have finished describing the category, you select the APIs you want to include in it.
  
  image::apim/3.x/api-publisher-guide/manage-apis/graviteeio-manage-apis-categories-3.png[]
  
  You can also choose to highlight a particular API. This API will be shown at the top of the category page.
  
  image::apim/3.x/api-publisher-guide/manage-apis/graviteeio-manage-apis-categories-4.png[]
  image::apim/3.x/api-publisher-guide/manage-apis/graviteeio-manage-apis-categories-4.png[]
  