Hi,
I work for CData Software (www.cdata.com) and our Cloud Driver exposes data from various sources as an OData/JSON/XML feed. We're interested in making it compatible with applications/services that consume Swagger API descriptions (like PowerApps/Flow). Thus far, we've exposed all of our operations properly, but we cannot reconcile how the Authentication process works with PowerApps/Flow as compared to Swagger UI/Editor
If we load our swagger.json into Swagger UI or Swagger Editor, we're able to use the built-in authenticate features (via Swagger securityDefinitions) to pass our auth token appropriately to our API. When I point Flow to our Swagger definition, I can select the different operations/entities exposed by our API, but I'm not sure what information to pass in the "Authentication" parameter which is visible when I click "Toggle advanced parameters". We simply need a way to pass the value of the authtoken as a query parameter ("@authtoken") or as a header (x-cdata-authtoken). I've pasted our swagger.json below.
Any help or guidance here would be appreciated!
swagger: '2.0'
info:
title: CData Swagger API
version: 1.0.0
host: 'somedomain.com'
schemes:
- http
basePath: /api.rsc
consumes:
- application/json
produces:
- application/json
paths:
/Account:
get:
summary: Return Account
description: >-
Returns records from the Account entity that match the specified query
parameters. All records will be returned when no parameters are
specified.
tags:
- Account
operationId: getAllAccount
parameters:
- name: $select
in: query
type: string
description: >-
A comma-separated list of properties to include in the results. When
this field is left empty, all properties will be returned.
- name: $orderby
in: query
type: string
description: >-
Order the results by this property in ascending or descending
order. Example for ascending: 'Name ASC' Example for descending:
'Name DESC'
- name: $top
in: query
type: integer
description: The number of results to return.
- name: $skip
in: query
type: integer
description: This is the offset of results to skip when returning results.
- name: $count
in: query
type: boolean
description: >-
When set, the results will return a count of results and not the
actual results.
- name: $filter
in: query
type: string
description: The filter. TBD.
responses:
'200':
description: Account response
schema:
type: object
properties:
value:
type: array
items:
$ref: '#/definitions/Account'
default:
description: Unexpected error
schema:
$ref: '#/definitions/_Error'
security:
- basic: []
- authtoken_header: []
- authtoken_query: []
post:
summary: Create Account
description: Creates a new Account object with the specified parameters.
tags:
- Account
operationId: createAccount
parameters:
- name: Account
in: body
required: true
description: The Account entity to post
schema:
$ref: '#/definitions/Account'
responses:
'201':
description: Account created
schema:
$ref: '#/definitions/Account'
default:
description: Unexpected error
schema:
$ref: '#/definitions/_Error'
security:
- basic: []
- authtoken_header: []
- authtoken_query: []
/Account/$count:
get:
summary: Return count of Account
description: >-
Returns count of records from the Account entity that match the
specified query parameters. All count will be returned when no
parameters are specified.
tags:
- Account
operationId: getAccountCount
parameters:
- name: $filter
in: query
type: string
description: The filter. TBD.
produces:
- text/plain; charset=utf-8
responses:
'200':
description: The count
schema:
type: string
format: int32
default:
description: Unexpected error
schema:
$ref: '#/definitions/_Error'
security:
- basic: []
- authtoken_header: []
- authtoken_query: []
'/Account(''{Id}'')':
get:
summary: Return a single Account
description: Returns a single Account object using the specified key.
tags:
- Account
operationId: getAccount
parameters:
- name: Id
in: path
description: The key Id
required: true
type: string
- name: $select
in: query
type: string
description: Select structural property
responses:
'200':
description: Account response
schema:
$ref: '#/definitions/Account'
default:
description: Unexpected error
schema:
$ref: '#/definitions/_Error'
security:
- basic: []
- authtoken_header: []
- authtoken_query: []
put:
summary: Update Account
description: Updates the specified Account object.
tags:
- Account
operationId: updateAccount
parameters:
- name: Id
in: path
description: The key Id
required: true
type: string
- name: Account
in: body
required: true
description: The Account entity to update.
schema:
$ref: '#/definitions/Account'
responses:
'200':
description: EntitySet Account
schema:
$ref: '#/definitions/Account'
'204':
description: Account updated
default:
description: Unexpected error
schema:
$ref: '#/definitions/_Error'
security:
- basic: []
- authtoken_header: []
- authtoken_query: []
delete:
summary: Delete Account
description: Deletes the specified Account object.
tags:
- Account
operationId: deleteAccount
parameters:
- name: Id
in: path
description: The key Id
required: true
type: string
responses:
'204':
description: Account deleted
default:
description: Unexpected error
schema:
$ref: '#/definitions/_Error'
security:
- basic: []
- authtoken_header: []
- authtoken_query: []
'/Account(''{Id}'')/{propertyName}/$value':
get:
summary: Return specified property value of specified Account
description: >-
Returns property value of Account object using the specified key and
property name.
tags:
- Account
operationId: getAccountProperty
parameters:
- name: Id
in: path
description: The key Id
required: true
type: string
- name: propertyName
in: path
type: string
description: The property name
required: true
produces:
- text/plain; charset=utf-8
responses:
'200':
description: The property value
schema:
type: string
default:
description: Unexpected error
schema:
$ref: '#/definitions/_Error'
security:
- basic: []
- authtoken_header: []
- authtoken_query: []
definitions:
Account:
type: object
properties:
CurrencyIsoCode:
description: Label Account Currency corresponds to this field.
type: string
maxLength: 3
Type:
description: Label Account Type corresponds to this field.
type: string
maxLength: 40
FiveChar_TextField__c:
description: Label FiveChar_TextField corresponds to this field.
type: string
maxLength: 5
BillingPostalCode:
description: Label Billing Zip/Postal Code corresponds to this field.
type: string
maxLength: 20
UpsellOpportunity__c:
description: Label Upsell Opportunity corresponds to this field.
type: string
maxLength: 255
PhotoUrl:
description: Label Photo URL corresponds to this field.
type: string
maxLength: 255
TickerSymbol:
description: Label Ticker Symbol corresponds to this field.
type: string
maxLength: 20
AnnualRevenue:
description: Label Annual Revenue corresponds to this field.
type: number
format: double
maxLength: 18
Website:
description: Label Website corresponds to this field.
type: string
maxLength: 255
CreatedDate:
description: Label Created Date corresponds to this field.
type: string
format: date-time
SLA__c:
description: Label SLA corresponds to this field.
type: string
maxLength: 255
Industry:
description: Label Industry corresponds to this field.
type: string
maxLength: 40
JigsawCompanyId:
description: Label Jigsaw Company ID corresponds to this field.
type: string
maxLength: 20
MyFormula__c:
description: Label MyFormula corresponds to this field.
type: string
maxLength: 1300
MyPercent__c:
description: Label MyPercent corresponds to this field.
type: number
format: double
maxLength: 18
Custom_Date_Time__c:
description: Label Custom Date Time corresponds to this field.
type: string
format: date-time
LastModifiedById:
description: Label Last Modified By ID corresponds to this field.
type: string
maxLength: 18
Sic:
description: Label SIC Code corresponds to this field.
type: string
maxLength: 20
ShippingLongitude:
description: Label Shipping Longitude corresponds to this field.
type: number
format: double
maxLength: 18
Description:
description: Label Account Description corresponds to this field.
type: string
maxLength: 32000
IsDeleted:
description: Label Deleted corresponds to this field.
type: boolean
ShippingLatitude:
description: Label Shipping Latitude corresponds to this field.
type: number
format: double
maxLength: 18
LastModifiedDate:
description: Label Last Modified Date corresponds to this field.
type: string
format: date-time
ShippingState:
description: Label Shipping State/Province corresponds to this field.
type: string
maxLength: 80
SLASerialNumber__c:
description: Label SLA Serial Number corresponds to this field.
type: string
maxLength: 10
Site:
description: Label Account Site corresponds to this field.
type: string
maxLength: 80
Id:
description: Label Account ID corresponds to this field.
type: string
maxLength: 18
LastViewedDate:
description: Label Last Viewed Date corresponds to this field.
type: string
format: date-time
FiveChar_PercentField__c:
description: Label FiveChar_PercentField corresponds to this field.
type: number
format: double
maxLength: 5
BillingState:
description: Label Billing State/Province corresponds to this field.
type: string
maxLength: 80
MyAutoNumber__c:
description: Label MyAutoNumber corresponds to this field.
type: string
maxLength: 30
FiveChar_CurrencyField__c:
description: Label FiveChar_CurrencyField corresponds to this field.
type: number
format: double
maxLength: 5
NumberofLocations__c:
description: Label Number of Locations corresponds to this field.
type: number
format: double
maxLength: 3
MyEmail__c:
description: Label MyEmail corresponds to this field.
type: string
maxLength: 80
SicDesc:
description: Label SIC Description corresponds to this field.
type: string
maxLength: 80
MasterRecordId:
description: Label Master Record ID corresponds to this field.
type: string
maxLength: 18
Ownership:
description: Label Ownership corresponds to this field.
type: string
maxLength: 40
BillingLongitude:
description: Label Billing Longitude corresponds to this field.
type: number
format: double
maxLength: 18
BillingStreet:
description: Label Billing Street corresponds to this field.
type: string
maxLength: 255
BillingCity:
description: Label Billing City corresponds to this field.
type: string
maxLength: 40
Active__c:
description: Label Active corresponds to this field.
type: string
maxLength: 255
SLAExpirationDate__c:
description: Label SLA Expiration Date corresponds to this field.
type: string
format: date-time
LastReferencedDate:
description: Label Last Referenced Date corresponds to this field.
type: string
format: date-time
Jigsaw:
description: Label Data.com Key corresponds to this field.
type: string
maxLength: 20
FiveChar_TextAreaMasked__c:
description: Label FiveChar_TextAreaMasked corresponds to this field.
type: string
maxLength: 5
New_Currency_Field_2__c:
description: Label New_Currency_Field_2 corresponds to this field.
type: number
format: double
maxLength: 18
RecordTypeId:
description: Label Record Type ID corresponds to this field.
type: string
maxLength: 18
CustomNumber__c:
description: Label CustomNumber corresponds to this field.
type: number
format: double
maxLength: 18
FiveChar_NumberField__c:
description: Label FiveChar_NumberField corresponds to this field.
type: number
format: double
maxLength: 5
ShippingPostalCode:
description: Label Shipping Zip/Postal Code corresponds to this field.
type: string
maxLength: 20
SystemModstamp:
description: Label System Modstamp corresponds to this field.
type: string
format: date-time
Phone:
description: Label Account Phone corresponds to this field.
type: string
maxLength: 40
AccountNumber:
description: Label Account Number corresponds to this field.
type: string
maxLength: 40
NewField__c:
description: Label NewField corresponds to this field.
type: number
format: double
maxLength: 18
BillingCountry:
description: Label Billing Country corresponds to this field.
type: string
maxLength: 80
NumberOfEmployees:
description: Label Employees corresponds to this field.
type: integer
format: int32
maxLength: 4
Fax:
description: Label Account Fax corresponds to this field.
type: string
maxLength: 40
CreatedById:
description: Label Created By ID corresponds to this field.
type: string
maxLength: 18
CustomerPriority__c:
description: Label Customer Priority corresponds to this field.
type: string
maxLength: 255
OwnerId:
description: Label Owner ID corresponds to this field.
type: string
maxLength: 18
ShippingCity:
description: Label Shipping City corresponds to this field.
type: string
maxLength: 40
multiselecttest__c:
description: Label multiselecttest corresponds to this field.
type: string
maxLength: 4099
MyExternalId__c:
description: Label MyExternalId corresponds to this field.
type: number
format: double
maxLength: 18
LastActivityDate:
description: Label Last Activity corresponds to this field.
type: string
format: date-time
MyRollupSummary__c:
description: Label MyRollupSummary corresponds to this field.
type: number
format: double
maxLength: 18
MyCheckBox__c:
description: Label MyCheckBox corresponds to this field.
type: boolean
BillingLatitude:
description: Label Billing Latitude corresponds to this field.
type: number
format: double
maxLength: 18
ParentId:
description: Label Parent Account ID corresponds to this field.
type: string
maxLength: 18
Industry_Type__c:
description: Label Industry_Type corresponds to this field.
type: string
maxLength: 4099
ShippingStreet:
description: Label Shipping Street corresponds to this field.
type: string
maxLength: 255
DO_NOT_USE__c:
description: Label DO_NOT_USE corresponds to this field.
type: boolean
ShippingCountry:
description: Label Shipping Country corresponds to this field.
type: string
maxLength: 80
New_Currency_Field__c:
description: Label New_Currency_Field corresponds to this field.
type: number
format: double
maxLength: 18
Rating:
description: Label Account Rating corresponds to this field.
type: string
maxLength: 40
Name:
description: Label Account Name corresponds to this field.
type: string
maxLength: 255
AccountSource:
description: Label Account Source corresponds to this field.
type: string
maxLength: 40
required:
- Id
_Error:
properties:
error:
$ref: '#/definitions/_InError'
_InError:
properties:
code:
type: string
message:
type: string
securityDefinitions:
basic:
type: basic
authtoken_header:
type: apiKey
in: header
name: x-cdata-authtoken
authtoken_query:
type: apiKey
in: query
name: '@authtoken'