Get third party CMS swagger
https://{FusionAppsHost}/crmRestApi/atcProductCatalog/11.13.18.05/productCatalogManagement/v1/swagger/ThirdPartyCMSSwagger
Request
There are no request parameters for this operation.
There's no request body for this operation.
Back to TopResponse
- application/json
200 Response
object
400 Response
object
Error
-
@schemaLocation: string
It provides a link to the schema describing a REST resource.
-
@type: string
The class type of a REST resource.
-
code(required): string
Application related code (as defined in the API or from a common list)
-
message: string
Text that provide more details and corrective actions related to the error. This can be shown to a client user.
-
reason(required): string
Text that explains the reason for error. This can be shown to a client user.
-
referenceError: string
url pointing to documentation describing the error
-
status: string
http error code extension like 400-2
401 Response
object
Error
-
@schemaLocation: string
It provides a link to the schema describing a REST resource.
-
@type: string
The class type of a REST resource.
-
code(required): string
Application related code (as defined in the API or from a common list)
-
message: string
Text that provide more details and corrective actions related to the error. This can be shown to a client user.
-
reason(required): string
Text that explains the reason for error. This can be shown to a client user.
-
referenceError: string
url pointing to documentation describing the error
-
status: string
http error code extension like 400-2
404 Response
object
Error
-
@schemaLocation: string
It provides a link to the schema describing a REST resource.
-
@type: string
The class type of a REST resource.
-
code(required): string
Application related code (as defined in the API or from a common list)
-
message: string
Text that provide more details and corrective actions related to the error. This can be shown to a client user.
-
reason(required): string
Text that explains the reason for error. This can be shown to a client user.
-
referenceError: string
url pointing to documentation describing the error
-
status: string
http error code extension like 400-2
405 Response
object
Error
-
@schemaLocation: string
It provides a link to the schema describing a REST resource.
-
@type: string
The class type of a REST resource.
-
code(required): string
Application related code (as defined in the API or from a common list)
-
message: string
Text that provide more details and corrective actions related to the error. This can be shown to a client user.
-
reason(required): string
Text that explains the reason for error. This can be shown to a client user.
-
referenceError: string
url pointing to documentation describing the error
-
status: string
http error code extension like 400-2
500 Response
object
Error
-
@schemaLocation: string
It provides a link to the schema describing a REST resource.
-
@type: string
The class type of a REST resource.
-
code(required): string
Application related code (as defined in the API or from a common list)
-
message: string
Text that provide more details and corrective actions related to the error. This can be shown to a client user.
-
reason(required): string
Text that explains the reason for error. This can be shown to a client user.
-
referenceError: string
url pointing to documentation describing the error
-
status: string
http error code extension like 400-2
Examples
The following example shows how to get the third party cms swagger by submitting a get request on the REST resource using cURL.
cURL Command
curl -u username:password -X GET
https://{FusionAppsHost}/crmRestApi/atcProductCatalog/11.13.18.05/productCatalogManagement/v1/swagger/ThirdPartyCMSSwagger
-H 'Content-Type: application/json' | json_pp
Example of Response Body
The following shows an example of the response body in JSON format.
{ "openapi": "3.0.3", "info": { "title": "Swagger Headless CMS - OpenAPI 3.0", "version": "1.0.0", "description": "API for accessing CMS data from any third-party CMS Service.\nThis API allows you to fetch data from various headless CMS systems using a standardized request and response format.\nLaunchX requires an implementation of this API to have third-party headless CMS support for managing content.\n", "x-summary": "API for fetching data from headless CMS systems" }, "servers": [ { "url": "https://{HeadlessCMSServiceHost}/api/cms/v1", "description": "Headless CMS Service Server" } ], "tags": [ { "name": "CMS Data", "description": "The CMS Data resource lets you view data in the underlying CMS." } ], "paths": { "/data": { "post": { "summary": "Fetch CMS data", "description": "Fetches data from a headless CMS based on the provided request payload.", "operationId": "getDataFromCMS", "tags": [ "CMS Data" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CMSRequestOracle" }, "examples": { "example1": { "summary": "Example request with attachmentType filter", "value": { "filters": [ { "filterName": "attachmentType", "filterValue": "images" } ], "additionalParams": [ { "paramName": "environment", "paramValue": "prod" }, { "paramName": "spaceId", "paramValue": "spaceId123" } ], "sort": "name", "order": "asc", "limit": 3, "offset": 0, "folderPath": "phones/" } }, "example2": { "summary": "Example request with name and tag filters", "value": { "filters": [ { "filterName": "name", "filterValue": "iphone" }, { "filterName": "name", "filterValue": "samsung" }, { "filterName": "tag", "filterValue": "color:blue" } ], "additionalParams": [ { "paramName": "environment", "paramValue": "staging" }, { "paramName": "spaceId", "paramValue": "spaceId456" } ], "sort": "size", "order": "desc", "limit": 5, "offset": 10, "folderPath": "laptops/" } }, "example3": { "summary": "Example request with author filter", "value": { "filters": [ { "filterName": "author", "filterValue": "John Doe" } ], "additionalParams": [ { "paramName": "environment", "paramValue": "dev" }, { "paramName": "spaceId", "paramValue": "spaceId789" } ], "sort": "id", "order": "asc", "limit": 2, "offset": 5, "folderPath": "documents/" } } } } } }, "responses": { "200": { "description": "Successful response containing the requested CMS data.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CMSResponseOracle" }, "examples": { "example1": { "summary": "Example response with image data", "value": { "data": [ { "id": "id1", "metadata": { "description": "description 1", "tags": [ "color:red", "size:large" ] }, "name": "iphone15.png", "url": "https://example.com/sample/test/iphone15.png", "contentType": "image/png", "path": "phones/iphone/" }, { "id": "id2", "metadata": { "description": "description 2", "tags": [ "color:blue", "size:medium" ] }, "name": "samsungs24.jpeg", "url": "https://example.com/sample/test/samsungs24.jpeg", "contentType": "image/jpeg", "path": "phones/samsung/" }, { "id": "id3", "metadata": { "contentType": "image/png", "description": "description 3", "tags": [ "color:green", "size:small" ] }, "name": "pixel8.png", "url": "https://example.com/sample/test/pixel8.png", "contentType": "image/png", "path": "phones/pixel/" } ], "pagination": { "limit": 3, "offset": 0, "total": 50, "hasMore": true } } }, "example2": { "summary": "Example response with document data", "value": { "data": [ { "id": "id4", "metadata": { "description": "description 4", "author": "John Wick" }, "name": "user_guide.pdf", "url": "https://example.com/sample/test/user_guide.pdf", "contentType": "application/pdf", "path": "documents/" }, { "id": "id5", "metadata": { "description": "description 5", "author": "Jane Smith" }, "name": "technical_spec.docx", "url": "https://example.com/sample/test/technical_spec.docx", "contentType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "path": "documents/" } ], "pagination": { "limit": 2, "offset": 0, "total": 10, "hasMore": true } } }, "example3": { "summary": "Example response with folder data", "value": { "data": [ { "id": "id6", "name": "phones", "url": "https://example.com/sample/test/phones", "contentType": "folder", "path": "" }, { "id": "id7", "name": "laptops", "url": "https://example.com/sample/test/laptops", "contentType": "folder", "path": "" } ], "pagination": { "limit": 2, "offset": 0, "total": 5, "hasMore": true } } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "500": { "$ref": "#/components/responses/500" } }, "security": [ { "BasicAuthentication": [] }, { "OAuth2": [ "read:cms" ] }, { "OCIHttpSignature": [] } ], "parameters": [ { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/offset" }, { "name": "X-CMS-Name", "in": "header", "description": "Name of the CMS to be used for fetching data.\nThis header is required to specify the target CMS from which the data will be retrieved.\nThe value should be a valid CMS name that is supported by the API.\nExample values: \"contentful\", \"prismic\", \"strapi\", \"default\"\n", "required": false, "schema": { "type": "string", "example": "contentful" } } ] } } }, "components": { "securitySchemes": { "BasicAuthentication": { "type": "http", "scheme": "basic", "description": "Basic authentication using username and password." }, "OAuth2": { "type": "oauth2", "flows": { "authorizationCode": { "authorizationUrl": "https://example.com/oauth/authorize", "tokenUrl": "https://example.com/oauth/token", "scopes": { "read:cms": "Read CMS data" } } }, "description": "OAuth 2.0 authentication." }, "OCIHttpSignature": { "type": "http", "scheme": "signature", "description": "OCI HTTP Signature Authentication.The client must include an Authorization header with the signature.\n", "x-headers": [ { "name": "Authorization", "description": "OCI Signature V1 authorization header, It should include the following components.\n - keyId: An identifier for the key used to create the signature\n - algorithm: The algorithm used for the signature (e.g., \"rsa-sha256\")\n - headers: The list of HTTP headers included in the signature\n - version: The version of the signature scheme (optional)\n\n For PUT and POST requests with a request body, the signing string must include at least these headers:\n 1. (request-target)\n 2. host\n 3. date or x-date\n 4. x-content-sha256\n 5. content-type\n 6. content-length\n", "example": "date (request-target) host\",keyId=\"ocid1.tenancy.oc1..aaaaaaaad7xx/ocid1.user.oc1..aaaaaaaaz7kclfg/12:43:76:65:4e:de:1e:90:5e:3e:ce:03:75:7f:c3:4e\",algorithm=\"rsa-sha256\",signature=\"PWR4zdYPFkIm+ysMAFsrYlBnAfEKyt+VU1V6++YtLRK8CAay/Jp5lYUKy0mm1kWnYONFLwhUt7pXk8HRQGPbW7HEs9yabB9l4XVgZ548ysYdxLRBaOJuitSV8f2RcWjXvKIcXbv9OXZjqZ9UdX2EksmCVGs8FmVWOlNFw12CQ6HdUdy07DVMb6UoUqWgb6b940pwSueIyD2QMZoXpNnu2FZdhT/GxfqE2BTKVyVcbNLQF4b+==\",version=\"1\"" }, { "name": "date", "description": "The date and time when the signature was created.", "example": "Sat, 17 Feb 2024 07:43:02 GMT" } ] } }, "schemas": { "CMSRequestOracle": { "type": "object", "properties": { "filters": { "type": "array", "items": { "$ref": "#/components/schemas/Filter" }, "description": "Array of filters to apply to the CMS data.Each filter should specify a `filterName` and corresponding `filterValue`." }, "additionalParams": { "type": "array", "items": { "$ref": "#/components/schemas/AdditionalParameters" }, "description": "Array of additional parameters to include in the CMS request." }, "sort": { "type": "string", "description": "Field by which to sort the CMS data.This could be any attribute of the data, such as \"name\", \"size\", \"dateCreated\".", "example": "name" }, "order": { "type": "string", "enum": [ "asc", "desc" ], "description": "Sort order (ascending or descending).\n* `asc` - For ascending order.\n* `desc` - For descending order.\n", "example": "asc" }, "folderPath": { "type": "string", "description": "Path structure of content within the CMS from where the data is to be fetched, if the CMS supports foldering capabilities.If the content is in root, this can be left empty.", "example": "phones/" } }, "description": "Request payload for fetching CMS data. It includes filters for specifying criteria, additional parameters for CMS-specific needs, sorting options, and the folder path." }, "Filter": { "type": "object", "properties": { "filterName": { "type": "string", "enum": [ "name", "size", "tag", "id", "author", "attachmentType" ], "description": "Name of the filter field on which filtering needs to be done. Below mentioned filters can be implemented based on the availability of CMS being used.\n * `name` - Name of the content. Example: \"iphone\", \"samsung\"\n * `size` - Size of the content. Example: \"large\", \"medium\", \"small\"\n * `tag` - Tagged attribute of content (Example - \"colour:blue\", \"type:mobile\")\n * `id` - The unique identifier of the content item. Filtering on id should only return a single record (exact match).\n * `author` - Author of the content. Example: \"John Wick\", \"Bruce Wayne\"\n * `attachmentType` - Attachement Type on which filtering needs to be done (Example - images,documents,spreadsheets).\n", "example": "name" }, "filterValue": { "type": "string", "description": "Field value to be filtered on.The valid values depend on the selected filterName.", "example": "iphone" } }, "description": "Filter criteria for CMS data. If filterName is duplicated, it must be treated as an OR condition in the logic when the response is returned. For example , if there is a filterName \"name\" that is duplicated or comma separated with different values \"iphone\" and \"samsung\", response should include both if both are present and either if only one is present and empty if none are present.", "required": [ "filterName", "filterValue" ] }, "AdditionalParameters": { "type": "object", "properties": { "paramName": { "type": "string", "description": "Name of the additional parameter." }, "paramValue": { "type": "string", "description": "Value of the additional parameter." } }, "description": "Additional parameters to include in the CMS request. Paramters or additional information that are required for specific CMS implementation(example - environment,workspace) can be passed here. Launch would have a provision to configure these would always be passed as part of request if present.", "required": [ "paramName", "paramValue" ] }, "CMSResponseOracle": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Data" }, "description": "Array of retrieved CMS data items.\nThe data response should not contain any recursive results or partial folder structures.\nSince limit and offset are used for pagination, the data array should only include the requested items without any nested folder structures.\n" }, "pagination": { "$ref": "#/components/schemas/Pagination" } }, "description": "Response payload containing the retrieved CMS data.", "required": [ "data", "pagination" ] }, "Data": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier of the CMS data item.", "example": "id1" }, "name": { "type": "string", "description": "Name or title of the CMS data item.", "example": "iphone15.png" }, "url": { "type": "string", "description": "Public URL or ready to use embedabble path to access the CMS data item.", "example": "https://example.com/sample/test/iphone15.png" }, "path": { "type": "string", "description": "Folder path of the data item. If the CMS supports foldering capabilities and the content is within a folder, the path can be specified. In cases where the content is in the root, the path can be empty.", "default": "", "example": "phones/iphone/" }, "contentType": { "type": "string", "description": "MIME type of the content associated with the CMS data item. If the data item denotes a folder(assuming the CMS aupports foldering of assets), the expected value is \"folder\".", "example": "image/jpeg" }, "metadata": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Additional metadata associated with the CMS data item.", "example": { "description": "A high-resolution image of iPhone 15.", "tags": [ "color:black", "type:mobile" ] } } }, "description": "Individual CMS data item. This schema represents a single item retrieved from the CMS, including its unique identifier, name, URL, path, MIME type, and any additional metadata.", "required": [ "id", "name", "url", "content-type" ] }, "Pagination": { "type": "object", "properties": { "total": { "type": "integer", "description": "Total number of CMS data items available.", "example": 150 }, "limit": { "type": "integer", "description": "Maximum number of items retrieved per page.", "example": 25 }, "offset": { "type": "integer", "description": "Number of items skipped before starting to retrieve data.", "example": 0 }, "hasMore": { "type": "boolean", "description": "Indicates whether there are more data items available beyond the current items in the response.", "example": true } }, "description": "Pagination information for the retrieved CMS data.", "required": [ "limit", "offset", "hasMore" ] }, "Error": { "title": "Error", "type": "object", "properties": { "code": { "type": "string", "description": "Application-related code (as defined in the API or from a common list).", "example": "CMS_ERROR" }, "reason": { "type": "string", "description": "Text that explains the reason for the error. This can be shown to a client user.", "example": "Invalid request parameters" }, "message": { "type": "string", "description": "Text that provides more details and corrective actions related to the error. This can be shown to a client user.", "example": "The provided request parameters are invalid. Please check the documentation for the correct format." }, "status": { "type": "string", "description": "HTTP error code extension like 400-2.", "example": "400-2" } }, "required": [ "code", "reason" ], "description": "Error response object." } }, "responses": { "400": { "description": "Bad request. The request couldn't be processed because it contains missing or invalid information.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "401": { "description": "Unauthorized. The authentication credentials included with the request are missing or invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "500": { "description": "Internal server error. An unexpected error occurred on the server.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } }, "parameters": { "limit": { "name": "limit", "description": "Maximum number of items to retrieve.", "in": "query", "required": false, "schema": { "type": "integer", "default": 25 }, "example": 3 }, "offset": { "name": "offset", "description": "Number of items to skip before starting to retrieve data.", "in": "query", "required": false, "schema": { "type": "integer", "default": 0 }, "example": 0 } } } }