@api-client/core 0.8.2 → 0.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data/apis/APIC-483/APIC-483.raml +16 -0
- package/data/apis/APIC-483/example/list-of-bank-succ.json +32 -0
- package/data/apis/APIC-483/schema/response-retrieve-list-bank.json +68 -0
- package/data/apis/arc-demo-api/arc-demo-api.raml +468 -0
- package/data/apis/arc-demo-api/examples/e400.xml +4 -0
- package/data/apis/arc-demo-api/examples/e401.xml +4 -0
- package/data/apis/arc-demo-api/examples/e404.xml +4 -0
- package/data/apis/arc-demo-api/examples/image.xml +5 -0
- package/data/apis/arc-demo-api/examples/messages-example.json +22 -0
- package/data/apis/arc-demo-api/examples/messages-sent-example.json +15 -0
- package/data/apis/arc-demo-api/examples/person.json +14 -0
- package/data/apis/arc-demo-api/examples/person.url.encoded +1 -0
- package/data/apis/arc-demo-api/examples/person.xml +14 -0
- package/data/apis/arc-demo-api/examples/product.xml +9 -0
- package/data/apis/arc-demo-api/library.raml +36 -0
- package/data/apis/arc-demo-api/resourceTypes/app-person.raml +49 -0
- package/data/apis/arc-demo-api/resourceTypes/example-types.raml +45 -0
- package/data/apis/arc-demo-api/resourceTypes/image.raml +23 -0
- package/data/apis/arc-demo-api/resourceTypes/message-sent-type.raml +23 -0
- package/data/apis/arc-demo-api/resourceTypes/message-type.raml +33 -0
- package/data/apis/arc-demo-api/resourceTypes/product.raml +52 -0
- package/data/apis/arc-demo-api/resourceTypes/resource.raml +11 -0
- package/data/apis/arc-demo-api/schemas/error-response.xsd +11 -0
- package/data/apis/arc-demo-api/schemas/image.xsd +11 -0
- package/data/apis/arc-demo-api/schemas/person.json +104 -0
- package/data/apis/arc-demo-api/schemas/person.xsd +26 -0
- package/data/apis/arc-demo-api/schemas/product.xsd +17 -0
- package/data/apis/arc-demo-api/securitySchemes/basic.raml +5 -0
- package/data/apis/arc-demo-api/securitySchemes/oauth_2_0.raml +29 -0
- package/data/apis/arc-demo-api/securitySchemes/x-custom.raml +26 -0
- package/data/apis/arc-demo-api/traits/adminable.raml +23 -0
- package/data/apis/arc-demo-api/traits/pagination.raml +83 -0
- package/data/apis/arc-demo-api/traits/rate-limited.raml +9 -0
- package/data/apis/oas-3-api/oas-3-api.yaml +356 -0
- package/data/apis/petstore/petstore.yaml +954 -0
- package/data/apis/secured-api/oauth-2-custom-settings.raml +143 -0
- package/data/apis/secured-api/oauth2-header-delivery.raml +13 -0
- package/data/apis/secured-api/oauth2-no-delivery.raml +8 -0
- package/data/apis/secured-api/oauth2-no-grants.raml +12 -0
- package/data/apis/secured-api/oauth2-pkce.raml +13 -0
- package/data/apis/secured-api/oauth2-query-delivery.raml +13 -0
- package/data/apis/secured-api/oauth_1_0.raml +8 -0
- package/data/apis/secured-api/oauth_1_0_no-settings.raml +3 -0
- package/data/apis/secured-api/oauth_1_0_no-signature.raml +7 -0
- package/data/apis/secured-api/oauth_1_0_signature.raml +8 -0
- package/data/apis/secured-api/passthrough-querystring.raml +16 -0
- package/data/apis/secured-api/passthrough.raml +24 -0
- package/data/apis/secured-api/secured-api.raml +231 -0
- package/data/apis/secured-api/x-custom.raml +33 -0
- package/data/apis/secured-api/x-other.raml +29 -0
- package/data/apis/secured-api/x-query-string.raml +16 -0
- package/data/model.js +5 -0
- package/data/models/APIC-483.json +3067 -0
- package/data/models/arc-demo-api.json +52694 -0
- package/data/models/oas-3-api.json +10464 -0
- package/data/models/petstore.json +27277 -0
- package/data/models/secured-api.json +19067 -0
- package/package.json +1 -1
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
#%RAML 1.0 Library
|
|
2
|
+
usage: This is a Library raml
|
|
3
|
+
|
|
4
|
+
types:
|
|
5
|
+
TypeFromLibray:
|
|
6
|
+
properties:
|
|
7
|
+
age: number
|
|
8
|
+
securitySchemes:
|
|
9
|
+
oauthLib:
|
|
10
|
+
type: OAuth 2.0
|
|
11
|
+
describedBy:
|
|
12
|
+
queryParameters:
|
|
13
|
+
access_token:
|
|
14
|
+
type: string
|
|
15
|
+
description: Used to send a valid OAuth 2 access token. Do not use with the "Authorization" header.
|
|
16
|
+
required: false
|
|
17
|
+
headers:
|
|
18
|
+
authorization:
|
|
19
|
+
type: string
|
|
20
|
+
example: ya.2453vfDb3cJHisdf.*&H
|
|
21
|
+
description: Used to send a valid OAuth 2 access token. Do not use with the "access_token" query string parameter.
|
|
22
|
+
required: false
|
|
23
|
+
responses:
|
|
24
|
+
401:
|
|
25
|
+
description: Bad or expired token. This can happen if the user or Dropbox revoked or expired an access token. To fix, re-authenticate the user.
|
|
26
|
+
body:
|
|
27
|
+
application/json:
|
|
28
|
+
403:
|
|
29
|
+
description: Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Unfortunately, re-authenticating the user won't help here.
|
|
30
|
+
body:
|
|
31
|
+
application/json:
|
|
32
|
+
settings:
|
|
33
|
+
accessTokenUri: http://api.domain.com/oauth2/token
|
|
34
|
+
authorizationUri: http://api.domain.com/oauth2/auth
|
|
35
|
+
authorizationGrants: ["authorization_code", "implicit"]
|
|
36
|
+
scopes: ["profile", "email"]
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#%RAML 1.0 DataType
|
|
2
|
+
|
|
3
|
+
displayName: A person resource
|
|
4
|
+
description: |
|
|
5
|
+
An object representing a person in the API.
|
|
6
|
+
This object will be used in all methods returning a Person or list of people.
|
|
7
|
+
|
|
8
|
+
type: !include resource.raml
|
|
9
|
+
example:
|
|
10
|
+
id: "R34fg663H9KW9MMSKISI"
|
|
11
|
+
name: "Pawel Psztyc"
|
|
12
|
+
birthday: "1983-10-20"
|
|
13
|
+
gender: male
|
|
14
|
+
url: "https://domain.com/profile/pawel.psztyc"
|
|
15
|
+
image:
|
|
16
|
+
url: https://domain.com/profile/pawel.psztyc/image
|
|
17
|
+
thumb: https://domain.com/profile/pawel.psztyc/image/thumb
|
|
18
|
+
tagline: Some text about me.
|
|
19
|
+
language: en_GB
|
|
20
|
+
etag: "W\\244m4n5kj3gbn2nj4k4n4"
|
|
21
|
+
properties:
|
|
22
|
+
id:
|
|
23
|
+
description: A unique identifier for a person. It is a 32 bit string containing alphanumeric characters.
|
|
24
|
+
name:
|
|
25
|
+
required: true
|
|
26
|
+
example: John Smith
|
|
27
|
+
description: Person full name. The input will be rejected if this property is not set while creating new object.
|
|
28
|
+
type: string
|
|
29
|
+
pattern: "[0-9a-zA-Z ]+"
|
|
30
|
+
birthday:
|
|
31
|
+
type: string
|
|
32
|
+
description: The person's date of birth, represented as YYYY-MM-DD.
|
|
33
|
+
gender?:
|
|
34
|
+
type: string
|
|
35
|
+
description: |
|
|
36
|
+
The person's gender. Possible values includes, but are not limited to, the following values:
|
|
37
|
+
* "male" - Male gender.
|
|
38
|
+
* "female" - Female gender.
|
|
39
|
+
* "other" - Other.
|
|
40
|
+
url:
|
|
41
|
+
type: string
|
|
42
|
+
description: The URL of this person's profile.
|
|
43
|
+
image: !include image.raml
|
|
44
|
+
tagline:
|
|
45
|
+
type: string
|
|
46
|
+
description: The brief description (tagline) of this person.
|
|
47
|
+
language:
|
|
48
|
+
type: string
|
|
49
|
+
description: The user's preferred language for rendering.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#%RAML 1.0 Library
|
|
2
|
+
|
|
3
|
+
types:
|
|
4
|
+
Org:
|
|
5
|
+
description: Represents an organization unit.
|
|
6
|
+
type: object
|
|
7
|
+
properties:
|
|
8
|
+
onCall: Alertable # inherits all properties from type `Alertable`
|
|
9
|
+
Head: Manager # inherits all properties from type `Manager`
|
|
10
|
+
Person:
|
|
11
|
+
type: object
|
|
12
|
+
properties:
|
|
13
|
+
firstname: string
|
|
14
|
+
lastname: string
|
|
15
|
+
title?: string
|
|
16
|
+
kind: string # may be used to differenciate between classes that extend from `Person`
|
|
17
|
+
example:
|
|
18
|
+
firstname: Pawel
|
|
19
|
+
lastname: Psztyc
|
|
20
|
+
title: Mr.
|
|
21
|
+
kind: Manager
|
|
22
|
+
Phone:
|
|
23
|
+
type: string
|
|
24
|
+
pattern: "^[0-9|-]+$" # defines pattern for the content of type `Phone`
|
|
25
|
+
Manager:
|
|
26
|
+
type: Person # inherits all properties from type `Person`
|
|
27
|
+
properties:
|
|
28
|
+
reports: Person[] # inherits all properties from type `Person`; array type where `[]` is a shortcut
|
|
29
|
+
phone: Phone
|
|
30
|
+
kind:
|
|
31
|
+
type: string
|
|
32
|
+
enum: [AcmeManager]
|
|
33
|
+
Admin:
|
|
34
|
+
type: Person # inherits all properties from type `Person`
|
|
35
|
+
properties:
|
|
36
|
+
kind:
|
|
37
|
+
type: string
|
|
38
|
+
enum: [AcmeAdmin]
|
|
39
|
+
clearanceLevel:
|
|
40
|
+
enum: [ low, high ]
|
|
41
|
+
AlertableAdmin:
|
|
42
|
+
type: Admin # inherits all properties from type `Admin`
|
|
43
|
+
properties:
|
|
44
|
+
phone: Phone # inherits all properties from type `Phone`; uses shortcut syntax
|
|
45
|
+
Alertable: Manager | AlertableAdmin # union type; either a `Manager` or `AlertableAdmin`
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#%RAML 1.0 DataType
|
|
2
|
+
|
|
3
|
+
description: |
|
|
4
|
+
An image object representing an image object strored in the file store.
|
|
5
|
+
The image can be only included in the response. It has no effect if the Image appear in the
|
|
6
|
+
request. Endpoint handles image creation on it's own and clients can't process images
|
|
7
|
+
except of sending image data.
|
|
8
|
+
|
|
9
|
+
type: object
|
|
10
|
+
properties:
|
|
11
|
+
url:
|
|
12
|
+
type: string
|
|
13
|
+
description: |
|
|
14
|
+
The URL of the image.
|
|
15
|
+
To resize the image and crop it to a square, append the query string **?sz=x**, where x is the dimension in pixels of each side.
|
|
16
|
+
thumb:
|
|
17
|
+
type: string
|
|
18
|
+
displayName: Thumbnail
|
|
19
|
+
description: |
|
|
20
|
+
An URL to the thumbnail of the image. Thumbnails are 60x60px cropped images of the original image.
|
|
21
|
+
example:
|
|
22
|
+
url: https://domain.com/profile/pawel.psztyc/image
|
|
23
|
+
thumb: https://domain.com/profile/pawel.psztyc/image/thumb
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#%RAML 1.0 DataType
|
|
2
|
+
|
|
3
|
+
type: object
|
|
4
|
+
description: |
|
|
5
|
+
Message sent by a user object. This represents a message in user's sent folder.
|
|
6
|
+
properties:
|
|
7
|
+
email:
|
|
8
|
+
type: string
|
|
9
|
+
description: Receiver email address. It's a virtual email address assigned to this user. Messages sent to this address will be rerouted to user's original address.
|
|
10
|
+
message:
|
|
11
|
+
type: string
|
|
12
|
+
description: Message body
|
|
13
|
+
timestamp:
|
|
14
|
+
type: integer
|
|
15
|
+
description: Message sent timestamp as a Uxin timestamp.
|
|
16
|
+
attachements:
|
|
17
|
+
type: string[]
|
|
18
|
+
description: List of URLs to the attachments
|
|
19
|
+
required: false
|
|
20
|
+
important:
|
|
21
|
+
type: boolean
|
|
22
|
+
description: True if the message should be marked as an important.
|
|
23
|
+
required: false
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#%RAML 1.0 DataType
|
|
2
|
+
|
|
3
|
+
type: object
|
|
4
|
+
description: An user message object.
|
|
5
|
+
properties:
|
|
6
|
+
from:
|
|
7
|
+
type: object
|
|
8
|
+
description: Object representing sender of the message.
|
|
9
|
+
required: false
|
|
10
|
+
properties:
|
|
11
|
+
uid:
|
|
12
|
+
type: string
|
|
13
|
+
description: User ID.
|
|
14
|
+
name:
|
|
15
|
+
type: string
|
|
16
|
+
description: User full name
|
|
17
|
+
email:
|
|
18
|
+
type: string
|
|
19
|
+
description: User emaill address to be used to return the message. It's a virtual email address assigned to this user. Messages sent to this address will be rerouted to user's original address.
|
|
20
|
+
message:
|
|
21
|
+
type: string
|
|
22
|
+
description: Message body
|
|
23
|
+
timestamp:
|
|
24
|
+
type: integer
|
|
25
|
+
description: Message sent timestamp as a Uxin timestamp.
|
|
26
|
+
attachements:
|
|
27
|
+
type: string[]
|
|
28
|
+
description: List of URLs to the attachments
|
|
29
|
+
required: false
|
|
30
|
+
important:
|
|
31
|
+
type: boolean
|
|
32
|
+
description: True if the message should be marked as an important.
|
|
33
|
+
required: false
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
#%RAML 1.0 DataType
|
|
2
|
+
|
|
3
|
+
displayName: A product resource
|
|
4
|
+
description: A single product representing an item in the store.
|
|
5
|
+
type: !include resource.raml
|
|
6
|
+
properties:
|
|
7
|
+
id:
|
|
8
|
+
description: |
|
|
9
|
+
Product id. It is a UUID of the database record.
|
|
10
|
+
__This property will be ignored when creating an object.__
|
|
11
|
+
It will be available when the product is stored in the datastore.
|
|
12
|
+
pattern: "[0-9a-zA-Z-]+"
|
|
13
|
+
name:
|
|
14
|
+
type: string
|
|
15
|
+
description: Product name
|
|
16
|
+
example: Acme product - mentol flavor, 500 ml.
|
|
17
|
+
required: true
|
|
18
|
+
quantity:
|
|
19
|
+
type: number
|
|
20
|
+
description: |
|
|
21
|
+
The quantity of the product in the one unit of measurement.
|
|
22
|
+
See `unit` property for more information.
|
|
23
|
+
example: 500
|
|
24
|
+
required: true
|
|
25
|
+
unit:
|
|
26
|
+
type: string
|
|
27
|
+
description: The unit of measuremet for the quantity property.
|
|
28
|
+
example: ml
|
|
29
|
+
required: true
|
|
30
|
+
upc:
|
|
31
|
+
type: string
|
|
32
|
+
pattern: "[0-9]{12,12}"
|
|
33
|
+
description: |
|
|
34
|
+
The Universal Produc Code. It consists of 12 numerical digits. However, because of the
|
|
35
|
+
integer precision limitation in JavaScript it is represented as a string.
|
|
36
|
+
example: "042100005264"
|
|
37
|
+
required: true
|
|
38
|
+
available:
|
|
39
|
+
type: boolean
|
|
40
|
+
description: |
|
|
41
|
+
Product current availability in the store.
|
|
42
|
+
Product may be not available but the users still can order it with later delivery date.
|
|
43
|
+
required: true
|
|
44
|
+
example: true
|
|
45
|
+
example:
|
|
46
|
+
id: we2322-4f4f4f-f4f4ff-f4f4ff4
|
|
47
|
+
name: Acme Product
|
|
48
|
+
quantity: 200
|
|
49
|
+
unit: ml
|
|
50
|
+
upc: "123456789101"
|
|
51
|
+
available: true
|
|
52
|
+
etag: "Wsd3deef3rgrgf4r"
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#%RAML 1.0 DataType
|
|
2
|
+
|
|
3
|
+
description: |
|
|
4
|
+
Common properties for all resources returned by the API.
|
|
5
|
+
type: object
|
|
6
|
+
properties:
|
|
7
|
+
etag:
|
|
8
|
+
type: string
|
|
9
|
+
description: |
|
|
10
|
+
ETag of this resource for caching purposes.
|
|
11
|
+
__This property will be ignored when creating an object.__
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
|
3
|
+
<xs:element name="resource">
|
|
4
|
+
<xs:complexType>
|
|
5
|
+
<xs:sequence>
|
|
6
|
+
<xs:element name="message" type="xs:string"></xs:element>
|
|
7
|
+
</xs:sequence>
|
|
8
|
+
<xs:attribute name="error" type="xs:boolean" use="required"/>
|
|
9
|
+
</xs:complexType>
|
|
10
|
+
</xs:element>
|
|
11
|
+
</xs:schema>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
|
3
|
+
<xs:element name="image">
|
|
4
|
+
<xs:complexType>
|
|
5
|
+
<xs:sequence>
|
|
6
|
+
<xs:element name="url" type="xs:string"></xs:element>
|
|
7
|
+
<xs:element name="thumb" type="xs:string"></xs:element>
|
|
8
|
+
</xs:sequence>
|
|
9
|
+
</xs:complexType>
|
|
10
|
+
</xs:element>
|
|
11
|
+
</xs:schema>
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "http://example.com/example.json",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"definitions": {},
|
|
5
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
6
|
+
"properties": {
|
|
7
|
+
"id": {
|
|
8
|
+
"$id": "/properties/id",
|
|
9
|
+
"type": "string",
|
|
10
|
+
"title": "The Id Schema ",
|
|
11
|
+
"default": "",
|
|
12
|
+
"examples": [
|
|
13
|
+
"R34fg663H9KW9MMSKISI"
|
|
14
|
+
]
|
|
15
|
+
},
|
|
16
|
+
"name": {
|
|
17
|
+
"$id": "/properties/name",
|
|
18
|
+
"type": "string",
|
|
19
|
+
"title": "The Name Schema ",
|
|
20
|
+
"default": "",
|
|
21
|
+
"examples": [
|
|
22
|
+
"Pawel Psztyc"
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"birthday": {
|
|
26
|
+
"$id": "/properties/birthday",
|
|
27
|
+
"type": "string",
|
|
28
|
+
"title": "The Birthday Schema ",
|
|
29
|
+
"default": "",
|
|
30
|
+
"examples": [
|
|
31
|
+
"1983-10-20"
|
|
32
|
+
]
|
|
33
|
+
},
|
|
34
|
+
"gender": {
|
|
35
|
+
"$id": "/properties/gender",
|
|
36
|
+
"type": "string",
|
|
37
|
+
"title": "The Gender Schema ",
|
|
38
|
+
"default": "",
|
|
39
|
+
"examples": [
|
|
40
|
+
"male"
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
"url": {
|
|
44
|
+
"$id": "/properties/url",
|
|
45
|
+
"type": "string",
|
|
46
|
+
"title": "The Url Schema ",
|
|
47
|
+
"default": "",
|
|
48
|
+
"examples": [
|
|
49
|
+
"https://domain.com/profile/pawel.psztyc"
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
"image": {
|
|
53
|
+
"$id": "/properties/image",
|
|
54
|
+
"type": "object",
|
|
55
|
+
"properties": {
|
|
56
|
+
"url": {
|
|
57
|
+
"$id": "/properties/image/properties/url",
|
|
58
|
+
"type": "string",
|
|
59
|
+
"title": "The Url Schema ",
|
|
60
|
+
"default": "",
|
|
61
|
+
"examples": [
|
|
62
|
+
"https://domain.com/profile/pawel.psztyc/image"
|
|
63
|
+
]
|
|
64
|
+
},
|
|
65
|
+
"thumb": {
|
|
66
|
+
"$id": "/properties/image/properties/thumb",
|
|
67
|
+
"type": "string",
|
|
68
|
+
"title": "The Thumb Schema ",
|
|
69
|
+
"default": "",
|
|
70
|
+
"examples": [
|
|
71
|
+
"https://domain.com/profile/pawel.psztyc/image/thumb"
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"tagline": {
|
|
77
|
+
"$id": "/properties/tagline",
|
|
78
|
+
"type": "string",
|
|
79
|
+
"title": "The Tagline Schema ",
|
|
80
|
+
"default": "",
|
|
81
|
+
"examples": [
|
|
82
|
+
"Some text about me."
|
|
83
|
+
]
|
|
84
|
+
},
|
|
85
|
+
"language": {
|
|
86
|
+
"$id": "/properties/language",
|
|
87
|
+
"type": "string",
|
|
88
|
+
"title": "The Language Schema ",
|
|
89
|
+
"default": "",
|
|
90
|
+
"examples": [
|
|
91
|
+
"en_GB"
|
|
92
|
+
]
|
|
93
|
+
},
|
|
94
|
+
"etag": {
|
|
95
|
+
"$id": "/properties/etag",
|
|
96
|
+
"type": "string",
|
|
97
|
+
"title": "The Etag Schema ",
|
|
98
|
+
"default": "",
|
|
99
|
+
"examples": [
|
|
100
|
+
"W\\244m4n5kj3gbn2nj4k4n4"
|
|
101
|
+
]
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
|
3
|
+
<xs:element name="resource">
|
|
4
|
+
<xs:complexType>
|
|
5
|
+
<xs:sequence>
|
|
6
|
+
<xs:element name="id" type="xs:string"></xs:element>
|
|
7
|
+
<xs:element name="name" type="xs:string"></xs:element>
|
|
8
|
+
<xs:element name="birthday" type="xs:date"></xs:element>
|
|
9
|
+
<xs:element name="gender" type="xs:string"></xs:element>
|
|
10
|
+
<xs:element name="url" type="xs:string"></xs:element>
|
|
11
|
+
<xs:element name="image">
|
|
12
|
+
<xs:complexType>
|
|
13
|
+
<xs:sequence>
|
|
14
|
+
<xs:element name="url" type="xs:string"></xs:element>
|
|
15
|
+
<xs:element name="thumb" type="xs:string"></xs:element>
|
|
16
|
+
</xs:sequence>
|
|
17
|
+
</xs:complexType>
|
|
18
|
+
</xs:element>
|
|
19
|
+
<xs:element name="tagline" type="xs:string"></xs:element>
|
|
20
|
+
<xs:element name="language" type="xs:string"></xs:element>
|
|
21
|
+
</xs:sequence>
|
|
22
|
+
<xs:attribute name="error" type="xs:boolean" use="required"></xs:attribute>
|
|
23
|
+
<xs:attribute name="type" type="xs:string" use="required"></xs:attribute>
|
|
24
|
+
</xs:complexType>
|
|
25
|
+
</xs:element>
|
|
26
|
+
</xs:schema>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
|
3
|
+
<xs:element name="resource">
|
|
4
|
+
<xs:complexType>
|
|
5
|
+
<xs:sequence>
|
|
6
|
+
<xs:element name="id" type="xs:string"></xs:element>
|
|
7
|
+
<xs:element name="name" type="xs:string"></xs:element>
|
|
8
|
+
<xs:element name="quantity" type="xs:double"></xs:element>
|
|
9
|
+
<xs:element name="unit" type="xs:string"></xs:element>
|
|
10
|
+
<xs:element name="upc" type="xs:string"></xs:element>
|
|
11
|
+
<xs:element name="available" type="xs:string"></xs:element>
|
|
12
|
+
</xs:sequence>
|
|
13
|
+
<xs:attribute name="error" type="xs:string"></xs:attribute>
|
|
14
|
+
<xs:attribute name="type" type="xs:string"></xs:attribute>
|
|
15
|
+
</xs:complexType>
|
|
16
|
+
</xs:element>
|
|
17
|
+
</xs:schema>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#%RAML 1.0 SecurityScheme
|
|
2
|
+
type: OAuth 2.0
|
|
3
|
+
description: This API supports OAuth 2.0 for authenticating all API requests.
|
|
4
|
+
describedBy:
|
|
5
|
+
queryParameters:
|
|
6
|
+
access_token:
|
|
7
|
+
type: string
|
|
8
|
+
description: Used to send a valid OAuth 2 access token. Do not use with the "Authorization" header.
|
|
9
|
+
required: false
|
|
10
|
+
headers:
|
|
11
|
+
authorization:
|
|
12
|
+
type: string
|
|
13
|
+
example: ya.2453vfDb3cJHisdf.*&H
|
|
14
|
+
description: Used to send a valid OAuth 2 access token. Do not use with the "access_token" query string parameter.
|
|
15
|
+
required: false
|
|
16
|
+
responses:
|
|
17
|
+
401:
|
|
18
|
+
description: Bad or expired token. This can happen if the user or Dropbox revoked or expired an access token. To fix, re-authenticate the user.
|
|
19
|
+
body:
|
|
20
|
+
application/json:
|
|
21
|
+
403:
|
|
22
|
+
description: Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Unfortunately, re-authenticating the user won't help here.
|
|
23
|
+
body:
|
|
24
|
+
application/json:
|
|
25
|
+
settings:
|
|
26
|
+
accessTokenUri: http://api.domain.com/oauth2/token
|
|
27
|
+
authorizationUri: http://api.domain.com/oauth2/auth
|
|
28
|
+
authorizationGrants: ["authorization_code", "implicit"]
|
|
29
|
+
scopes: ["profile", "email"]
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#%RAML 1.0 SecurityScheme
|
|
2
|
+
|
|
3
|
+
description: |
|
|
4
|
+
A custom security scheme for authenticating requests.
|
|
5
|
+
type: x-custom
|
|
6
|
+
describedBy:
|
|
7
|
+
headers:
|
|
8
|
+
SpecialToken:
|
|
9
|
+
description: |
|
|
10
|
+
Used to send a custom token.
|
|
11
|
+
type: string
|
|
12
|
+
queryParameters:
|
|
13
|
+
debugToken:
|
|
14
|
+
description: Select one of available values to run the request in the debug mode with selected level.
|
|
15
|
+
enum: [Info, Log, Warning, Error, Critical]
|
|
16
|
+
type: string
|
|
17
|
+
required: false
|
|
18
|
+
booleanToken:
|
|
19
|
+
description: Just to test boolean values.
|
|
20
|
+
type: boolean
|
|
21
|
+
default: true
|
|
22
|
+
responses:
|
|
23
|
+
401:
|
|
24
|
+
description: |
|
|
25
|
+
Bad token.
|
|
26
|
+
403:
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#%RAML 1.0 Trait
|
|
2
|
+
|
|
3
|
+
#displayName: Adminable
|
|
4
|
+
description: Use this to mark a resource that can be changed only by users with admin level.
|
|
5
|
+
|
|
6
|
+
usage: |
|
|
7
|
+
Some resources can be changed only by users with Admin clerance level. This resources will be
|
|
8
|
+
marked with the header `X-Admin-Resource` when requesting it. It means that every attemp to
|
|
9
|
+
update the resource by non-admin user will result with 401 response.
|
|
10
|
+
|
|
11
|
+
responses:
|
|
12
|
+
200:
|
|
13
|
+
headers:
|
|
14
|
+
X-Amin-Resource:
|
|
15
|
+
displayName: Admin resource mark header
|
|
16
|
+
type: boolean
|
|
17
|
+
default: false
|
|
18
|
+
description: This header is not set if the resource can be changed by non-admin users.
|
|
19
|
+
401:
|
|
20
|
+
description: |
|
|
21
|
+
The 401 response will be returned when trying to update the resource with
|
|
22
|
+
non-admin clerance level. Resources that requires admin privileges are marked with
|
|
23
|
+
`X-Admin-Resource` header when getting the resource.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
#%RAML 1.0 Trait
|
|
2
|
+
|
|
3
|
+
# displayName: Paginated
|
|
4
|
+
description: The collection of <<resourcePathName>>.
|
|
5
|
+
usage: |
|
|
6
|
+
This trait is to be used when the resource is paginated that is the edpoint producses
|
|
7
|
+
a list of resources in the response.
|
|
8
|
+
Every paginated response contains a `nextPageToken` property that should be used in pagination
|
|
9
|
+
to request for next page of the results and `items` which is a list of resources.
|
|
10
|
+
The `items` property is always defined, even if the response is empty. Therefore the `404`
|
|
11
|
+
response in this case is not possible. Clients need to handle empty responses by their own.
|
|
12
|
+
It is crutial that the subsequent requests contain the same set of parameters (like `limit`
|
|
13
|
+
or `start`) because if this values will change then the `nextPageToken` will be revalidated
|
|
14
|
+
and pagination will start from the first page.
|
|
15
|
+
queryParameters:
|
|
16
|
+
limit:
|
|
17
|
+
type: number
|
|
18
|
+
description: Limit in the response list
|
|
19
|
+
maximum: 300
|
|
20
|
+
minimum: 1
|
|
21
|
+
example: 100
|
|
22
|
+
default: 25
|
|
23
|
+
required: false
|
|
24
|
+
start:
|
|
25
|
+
type: number
|
|
26
|
+
description: The start entry of the list
|
|
27
|
+
minimum: 0
|
|
28
|
+
example: 25
|
|
29
|
+
default: 0
|
|
30
|
+
required: false
|
|
31
|
+
nextPageToken:
|
|
32
|
+
type: string
|
|
33
|
+
example: CiAKGjBpNDd2Nmp2Zml2cXRwYjBpOXA
|
|
34
|
+
description: |
|
|
35
|
+
The `nextPageToken` is a web safe encoded cursor to the next entry in the database.
|
|
36
|
+
It can be obtained by requesting paginated resource and used in next request to get
|
|
37
|
+
next results page.
|
|
38
|
+
pattern: "[a-zA-Z0-9]+"
|
|
39
|
+
required: false
|
|
40
|
+
responses:
|
|
41
|
+
200:
|
|
42
|
+
description: |
|
|
43
|
+
Paginated response containing a single page of the result.
|
|
44
|
+
By default one page of the results contains 25 items. You can extend it by setting a
|
|
45
|
+
`limit` query parameter in your request.
|
|
46
|
+
When changing parameters while using the `nextPageToken` the `nextPageToken` will be ignored
|
|
47
|
+
and new query will be performed. Queries with `nextPageToken` should contain the same set
|
|
48
|
+
of parameters as the first request.
|
|
49
|
+
body:
|
|
50
|
+
application/json:
|
|
51
|
+
type: object
|
|
52
|
+
properties:
|
|
53
|
+
items:
|
|
54
|
+
type: array
|
|
55
|
+
required: true
|
|
56
|
+
description: Contains a list of objects for this method.
|
|
57
|
+
items: <<resourceType>>
|
|
58
|
+
nextPageToken:
|
|
59
|
+
type: string
|
|
60
|
+
required: true
|
|
61
|
+
example: CiAKGjBpNDd2Nmp2Zml2cXRwYjBpOXA
|
|
62
|
+
description: |
|
|
63
|
+
The next page token is a web safe encoded cursor to the next entry in the database.
|
|
64
|
+
Use it in the next request to obtain next page of the results.
|
|
65
|
+
400:
|
|
66
|
+
description: |
|
|
67
|
+
The error response when one of the parameters is invalid and can't be parsed.
|
|
68
|
+
Nothing can be done at this time except correcting the request to send valid data.
|
|
69
|
+
body:
|
|
70
|
+
application/json:
|
|
71
|
+
displayName: Invalid
|
|
72
|
+
type: object
|
|
73
|
+
properties:
|
|
74
|
+
error:
|
|
75
|
+
type: boolean
|
|
76
|
+
required: true
|
|
77
|
+
example: true
|
|
78
|
+
description: Indicate that the response is errored.
|
|
79
|
+
message:
|
|
80
|
+
type: string
|
|
81
|
+
description: The error message associated with the error.
|
|
82
|
+
example: The `limit` parameter is invalid. Please, provide a number between 1 and 300.
|
|
83
|
+
required: true
|