mirror of
https://github.com/oceanprotocol/docs.git
synced 2024-11-26 19:49:26 +01:00
fetch remote swagger specs
This commit is contained in:
parent
f126896b76
commit
880dcc8fc7
@ -1,509 +0,0 @@
|
||||
{
|
||||
"definitions": {},
|
||||
"info": {
|
||||
"description": "Aquarius provides an off-chain database store for metadata about data assets. When running with our Docker images, it is exposed under:`http://0.0.0.0:5000`.",
|
||||
"title": "Aquarius",
|
||||
"version": "0.2.2"
|
||||
},
|
||||
"paths": {
|
||||
"/api/v1/aquarius/assets": {
|
||||
"get": {
|
||||
"description": "",
|
||||
"responses": { "200": { "description": "successful action" } },
|
||||
"summary": "Get all asset IDs.",
|
||||
"tags": ["ddo"]
|
||||
}
|
||||
},
|
||||
"/api/v1/aquarius/assets/ddo": {
|
||||
"delete": {
|
||||
"description": "",
|
||||
"responses": {
|
||||
"200": { "description": "successfully deleted" },
|
||||
"500": { "description": "Error" }
|
||||
},
|
||||
"summary": "Retire metadata of all the assets.",
|
||||
"tags": ["ddo"]
|
||||
},
|
||||
"get": {
|
||||
"description": "",
|
||||
"responses": { "200": { "description": "successful action" } },
|
||||
"summary": "Get DDO of all assets.",
|
||||
"tags": ["ddo"]
|
||||
},
|
||||
"post": {
|
||||
"consumes": ["application/json"],
|
||||
"description": "",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "DDO of the asset.",
|
||||
"in": "body",
|
||||
"name": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"properties": {
|
||||
"@context": {
|
||||
"description": null,
|
||||
"example": "https://w3id.org/future-method/v1",
|
||||
"type": "string"
|
||||
},
|
||||
"authentication": {
|
||||
"description": "List of authentication mechanisms.",
|
||||
"example": [
|
||||
{ "type": "RsaSignatureAuthentication2018" },
|
||||
{ "publicKey": "did:op:123456789abcdefghi#keys-1" }
|
||||
],
|
||||
"type": "array"
|
||||
},
|
||||
"created": {
|
||||
"description": "date of ddo creation.",
|
||||
"example": "2016-02-08T16:02:20Z",
|
||||
"type": "string"
|
||||
},
|
||||
"id": {
|
||||
"description": "ID of the asset.",
|
||||
"example": "did:op:123456789abcdefghi",
|
||||
"type": "string"
|
||||
},
|
||||
"proof": {
|
||||
"description": "Information about the creation and creator of the asset.",
|
||||
"example": {
|
||||
"created": "2016-02-08T16:02:20Z",
|
||||
"creator": "did:example:8uQhQMGzWxR8vw5P3UWH1ja",
|
||||
"signatureValue": "QNB13Y7Q9...1tzjn4w==",
|
||||
"type": "UUIDSignature"
|
||||
},
|
||||
"type": "dictionary"
|
||||
},
|
||||
"publicKey": {
|
||||
"description": "List of public keys.",
|
||||
"example": [
|
||||
{ "id": "did:op:123456789abcdefghi#keys-1" },
|
||||
{ "type": "Ed25519VerificationKey2018" },
|
||||
{ "owner": "did:op:123456789abcdefghi" },
|
||||
{
|
||||
"publicKeyBase58": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
|
||||
}
|
||||
],
|
||||
"type": "array"
|
||||
},
|
||||
"service": {
|
||||
"description": "List of services.",
|
||||
"example": [
|
||||
{
|
||||
"serviceEndpoint": "http://mybrizo.org/api/v1/brizo/services/consume?pubKey=${ pubKey}&serviceId={serviceId}&url={url}",
|
||||
"type": "Access"
|
||||
},
|
||||
{
|
||||
"serviceEndpoint": "http://mybrizo.org/api/v1/brizo/services/compute?pubKey=${ pubKey}&serviceId={serviceId}&algo={algo}&container={container}",
|
||||
"type": "Compute"
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"additionalInformation": {
|
||||
"structuredMarkup": [
|
||||
{
|
||||
"mediaType": "application/ld+json",
|
||||
"uri": "http://skos.um.es/unescothes/C01194/jsonld"
|
||||
},
|
||||
{
|
||||
"mediaType": "text/turtle",
|
||||
"uri": "http://skos.um.es/unescothes/C01194/turtle"
|
||||
}
|
||||
],
|
||||
"updateFrecuency": "yearly"
|
||||
},
|
||||
"base": {
|
||||
"author": "Met Office",
|
||||
"checksum": "38803b9e6f04fce3fba4b124524672592264d31847182c689095a081c9e85262",
|
||||
"compression": "zip",
|
||||
"copyrightHolder": "Met Office",
|
||||
"dateCreated": "2012-02-01T10:55:11Z",
|
||||
"description": "Weather information of UK including temperature and humidity",
|
||||
"encryptedFiles": "0x098213xzckasdf089723hjgdasfkjgasfv",
|
||||
"files": [
|
||||
{
|
||||
"compression": "zip",
|
||||
"contentLength": "4535431",
|
||||
"contentType": "text/csv",
|
||||
"encoding": "UTF-8",
|
||||
"resourceId": "access-log2018-02-13-15-17-29-18386C502CAEA932"
|
||||
}
|
||||
],
|
||||
"inLanguage": "en",
|
||||
"license": "CC-BY",
|
||||
"links": [
|
||||
{
|
||||
"name": "Sample of Asset Data",
|
||||
"type": "sample",
|
||||
"url": "https://foo.com/sample.csv"
|
||||
},
|
||||
{
|
||||
"AssetID": "4d517500da0acb0d65a716f61330969334630363ce4a6a9d39691026ac7908ea",
|
||||
"name": "Data Format Definition",
|
||||
"type": "format"
|
||||
}
|
||||
],
|
||||
"name": "UK Weather information 2011",
|
||||
"price": 10,
|
||||
"tags": "weather, uk, 2011, temperature, humidity",
|
||||
"type": "dataset",
|
||||
"workExample": "stationId,latitude,longitude,datetime, temperature,humidity/n423432fsd,51.509865,-0.118092, 2011-01-01T10:55:11+00:00,7.2,68"
|
||||
},
|
||||
"curation": {
|
||||
"numVotes": 123,
|
||||
"rating": 0.93,
|
||||
"schema": "Binary Voting"
|
||||
}
|
||||
},
|
||||
"serviceDefinitionId": "2",
|
||||
"serviceEndpoint": "http://myaquarius.org/api/v1/provider/assets/metadata/{did}",
|
||||
"type": "Metadata"
|
||||
}
|
||||
],
|
||||
"type": "array"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"@context",
|
||||
"id",
|
||||
"created",
|
||||
"publicKey",
|
||||
"authentication",
|
||||
"proof",
|
||||
"service"
|
||||
],
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"201": { "description": "Asset successfully registered." },
|
||||
"400": {
|
||||
"description": "One of the required attributes is missing."
|
||||
},
|
||||
"404": { "description": "Invalid asset data." },
|
||||
"500": { "description": "Error" }
|
||||
},
|
||||
"summary": "Register DDO of a new asset",
|
||||
"tags": ["ddo"]
|
||||
}
|
||||
},
|
||||
"/api/v1/aquarius/assets/ddo/query": {
|
||||
"get": {
|
||||
"description": "",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "ID of the asset.",
|
||||
"in": "query",
|
||||
"name": "text",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"description": "Key or list of keys to sort the result",
|
||||
"example": { "value": 1 },
|
||||
"in": "query",
|
||||
"name": "sort",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"description": "Number of records per page",
|
||||
"example": 100,
|
||||
"in": "query",
|
||||
"name": "offset",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"description": "Page showed",
|
||||
"example": 1,
|
||||
"in": "query",
|
||||
"name": "page",
|
||||
"type": "int"
|
||||
}
|
||||
],
|
||||
"responses": { "200": { "description": "successful action" } },
|
||||
"summary": "Get a list of DDOs that match with the given text.",
|
||||
"tags": ["ddo"]
|
||||
},
|
||||
"post": {
|
||||
"consumes": ["application/json"],
|
||||
"description": "",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "Asset metadata.",
|
||||
"in": "body",
|
||||
"name": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"properties": {
|
||||
"offset": {
|
||||
"description": "Number of records per page",
|
||||
"example": 100,
|
||||
"type": "int"
|
||||
},
|
||||
"page": {
|
||||
"description": "Page showed",
|
||||
"example": 1,
|
||||
"type": "int"
|
||||
},
|
||||
"query": {
|
||||
"description": "Query to realize",
|
||||
"example": { "value": 1 },
|
||||
"type": "string"
|
||||
},
|
||||
"sort": {
|
||||
"description": "Key or list of keys to sort the result",
|
||||
"example": { "value": 1 },
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": { "200": { "description": "successful action" } },
|
||||
"summary": "Get a list of DDOs that match with the executed query.",
|
||||
"tags": ["ddo"]
|
||||
}
|
||||
},
|
||||
"/api/v1/aquarius/assets/ddo/validate": {
|
||||
"post": {
|
||||
"consumes": ["application/json"],
|
||||
"description": "",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "Asset metadata.",
|
||||
"in": "body",
|
||||
"name": "body",
|
||||
"required": true,
|
||||
"schema": { "type": "object" }
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": { "description": "successfully request." },
|
||||
"500": { "description": "Error" }
|
||||
},
|
||||
"summary": "Validate metadata content.",
|
||||
"tags": ["ddo"]
|
||||
}
|
||||
},
|
||||
"/api/v1/aquarius/assets/ddo/{did}": {
|
||||
"delete": {
|
||||
"description": "",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "DID of the asset.",
|
||||
"in": "path",
|
||||
"name": "did",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": { "description": "successfully deleted" },
|
||||
"404": { "description": "This asset DID is not in OceanDB" },
|
||||
"500": { "description": "Error" }
|
||||
},
|
||||
"summary": "Retire metadata of an asset",
|
||||
"tags": ["ddo"]
|
||||
},
|
||||
"get": {
|
||||
"description": "",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "DID of the asset.",
|
||||
"in": "path",
|
||||
"name": "did",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": { "description": "successful operation" },
|
||||
"404": { "description": "This asset DID is not in OceanDB" }
|
||||
},
|
||||
"summary": "Get DDO of a particular asset.",
|
||||
"tags": ["ddo"]
|
||||
},
|
||||
"put": {
|
||||
"consumes": ["application/json"],
|
||||
"description": "",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "DDO of the asset.",
|
||||
"in": "body",
|
||||
"name": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"properties": {
|
||||
"@context": {
|
||||
"description": null,
|
||||
"example": "https://w3id.org/future-method/v1",
|
||||
"type": "string"
|
||||
},
|
||||
"authentication": {
|
||||
"description": "List of authentication mechanisms.",
|
||||
"example": [
|
||||
{ "type": "RsaSignatureAuthentication2018" },
|
||||
{ "publicKey": "did:op:123456789abcdefghi#keys-1" }
|
||||
],
|
||||
"type": "array"
|
||||
},
|
||||
"created": {
|
||||
"description": "date of ddo creation.",
|
||||
"example": "2016-02-08T16:02:20Z",
|
||||
"type": "string"
|
||||
},
|
||||
"id": {
|
||||
"description": "ID of the asset.",
|
||||
"example": "did:op:123456789abcdefghi",
|
||||
"type": "string"
|
||||
},
|
||||
"proof": {
|
||||
"description": "Information about the creation and creator of the asset.",
|
||||
"example": {
|
||||
"created": "2016-02-08T16:02:20Z",
|
||||
"creator": "did:example:8uQhQMGzWxR8vw5P3UWH1ja",
|
||||
"signatureValue": "QNB13Y7Q9...1tzjn4w==",
|
||||
"type": "UUIDSignature"
|
||||
},
|
||||
"type": "dictionary"
|
||||
},
|
||||
"publicKey": {
|
||||
"description": "List of public keys.",
|
||||
"example": [
|
||||
{ "id": "did:op:123456789abcdefghi#keys-1" },
|
||||
{ "type": "Ed25519VerificationKey2018" },
|
||||
{ "owner": "did:op:123456789abcdefghi" },
|
||||
{
|
||||
"publicKeyBase58": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
|
||||
}
|
||||
],
|
||||
"type": "array"
|
||||
},
|
||||
"service": {
|
||||
"description": "List of services.",
|
||||
"example": [
|
||||
{
|
||||
"serviceEndpoint": "http://mybrizo.org/api/v1/brizo/services/consume?pubKey=${ pubKey}&serviceId={serviceId}&url={url}",
|
||||
"type": "Access"
|
||||
},
|
||||
{
|
||||
"serviceEndpoint": "http://mybrizo.org/api/v1/brizo/services/compute?pubKey=${ pubKey}&serviceId={serviceId}&algo={algo}&container={container}",
|
||||
"type": "Compute"
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"additionalInformation": {
|
||||
"structuredMarkup": [
|
||||
{
|
||||
"mediaType": "application/ld+json",
|
||||
"uri": "http://skos.um.es/unescothes/C01194/jsonld"
|
||||
},
|
||||
{
|
||||
"mediaType": "text/turtle",
|
||||
"uri": "http://skos.um.es/unescothes/C01194/turtle"
|
||||
}
|
||||
],
|
||||
"updateFrecuency": "yearly"
|
||||
},
|
||||
"base": {
|
||||
"author": "Met Office",
|
||||
"checksum": "38803b9e6f04fce3fba4b124524672592264d31847182c689095a081c9e85262",
|
||||
"compression": "zip",
|
||||
"copyrightHolder": "Met Office",
|
||||
"dateCreated": "2012-02-01T10:55:11Z",
|
||||
"description": "Weather information of UK including temperature and humidity",
|
||||
"encryptedFiles": "0x098213xzckasdf089723hjgdasfkjgasfv",
|
||||
"files": [
|
||||
{
|
||||
"compression": "zip",
|
||||
"contentLength": "4535431",
|
||||
"contentType": "text/csv",
|
||||
"encoding": "UTF-8",
|
||||
"resourceId": "access-log2018-02-13-15-17-29-18386C502CAEA932"
|
||||
}
|
||||
],
|
||||
"inLanguage": "en",
|
||||
"license": "CC-BY",
|
||||
"links": [
|
||||
{
|
||||
"name": "Sample of Asset Data",
|
||||
"type": "sample",
|
||||
"url": "https://foo.com/sample.csv"
|
||||
},
|
||||
{
|
||||
"AssetID": "4d517500da0acb0d65a716f61330969334630363ce4a6a9d39691026ac7908ea",
|
||||
"name": "Data Format Definition",
|
||||
"type": "format"
|
||||
}
|
||||
],
|
||||
"name": "UK Weather information 2011",
|
||||
"price": 10,
|
||||
"tags": "weather, uk, 2011, temperature, humidity",
|
||||
"type": "dataset",
|
||||
"workExample": "stationId,latitude,longitude,datetime, temperature,humidity/n423432fsd,51.509865,-0.118092, 2011-01-01T10:55:11+00:00,7.2,68"
|
||||
},
|
||||
"curation": {
|
||||
"numVotes": 123,
|
||||
"rating": 0.93,
|
||||
"schema": "Binary Voting"
|
||||
}
|
||||
},
|
||||
"serviceDefinitionId": "2",
|
||||
"serviceEndpoint": "http://myaquarius.org/api/v1/provider/assets/metadata/{did}",
|
||||
"type": "Metadata"
|
||||
}
|
||||
],
|
||||
"type": "array"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"@context",
|
||||
"created",
|
||||
"id",
|
||||
"publicKey",
|
||||
"authentication",
|
||||
"proof",
|
||||
"service"
|
||||
],
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": { "description": "Asset successfully updated." },
|
||||
"201": { "description": "Asset successfully registered." },
|
||||
"400": {
|
||||
"description": "One of the required attributes is missing."
|
||||
},
|
||||
"404": { "description": "Invalid asset data." },
|
||||
"500": { "description": "Error" }
|
||||
},
|
||||
"summary": "Update DDO of an existing asset",
|
||||
"tags": ["ddo"]
|
||||
}
|
||||
},
|
||||
"/api/v1/aquarius/assets/metadata/{did}": {
|
||||
"get": {
|
||||
"description": "",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "DID of the asset.",
|
||||
"in": "path",
|
||||
"name": "did",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": { "description": "successful operation." },
|
||||
"404": { "description": "This asset DID is not in OceanDB." }
|
||||
},
|
||||
"summary": "Get metadata of a particular asset",
|
||||
"tags": ["metadata"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"swagger": "2.0"
|
||||
}
|
114
data/brizo.json
114
data/brizo.json
@ -1,114 +0,0 @@
|
||||
{
|
||||
"definitions": {},
|
||||
"info": {
|
||||
"description": "Brizo is the technical component executed by Publishers allowing them to provide extended data services. When running with our Docker images, it is exposed under `http://localhost:8030`.",
|
||||
"title": "Brizo",
|
||||
"version": "0.3.5"
|
||||
},
|
||||
"paths": {
|
||||
"/api/v1/brizo/services/access/initialize": {
|
||||
"post": {
|
||||
"consumes": ["application/json"],
|
||||
"description": "",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "Service agreement initialization.",
|
||||
"in": "body",
|
||||
"name": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"properties": {
|
||||
"consumerAddress": {
|
||||
"description": "Consumer address.",
|
||||
"example": "0x00a329c0648769A73afAc7F9381E08FB43dBEA72",
|
||||
"type": "string"
|
||||
},
|
||||
"did": {
|
||||
"description": "Identifier of the asset registered in ocean.",
|
||||
"example": "did:op:08a429b8529856d59867503f8056903a680935a76950bb9649785cc97869a43d",
|
||||
"type": "string"
|
||||
},
|
||||
"serviceAgreementId": {
|
||||
"description": "Identifier of the service agreement.",
|
||||
"example": "bb23s87856d59867503f80a690357406857698570b964ac8dcc9d86da4ada010",
|
||||
"type": "string"
|
||||
},
|
||||
"serviceDefinitionId": {
|
||||
"description": "Identifier of the service definition.",
|
||||
"example": "0",
|
||||
"type": "string"
|
||||
},
|
||||
"signature": {
|
||||
"description": "Signature",
|
||||
"example": "cade376598342cdae231321a0097876aeda656a567a67c6767fd8710129a9dc1",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"did",
|
||||
"serviceAgreementId",
|
||||
"serviceDefinitionId",
|
||||
"signature",
|
||||
{ "consumerAddress": null }
|
||||
],
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"201": {
|
||||
"description": "Service agreement successfully initialized."
|
||||
},
|
||||
"400": {
|
||||
"description": "One of the required attributes is missing."
|
||||
},
|
||||
"401": { "description": "Error executing the service agreement." },
|
||||
"422": { "description": "Ocean DID not found on chain." },
|
||||
"500": { "description": "Error" }
|
||||
},
|
||||
"summary": "Initialize the service agreement between the publisher and the consumer.",
|
||||
"tags": ["services"]
|
||||
}
|
||||
},
|
||||
"/api/v1/brizo/services/consume": {
|
||||
"get": {
|
||||
"consumes": ["application/json"],
|
||||
"description": "",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "The consumer address.",
|
||||
"in": "query",
|
||||
"name": "consumerAddress",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"description": "The ID of the service agreement.",
|
||||
"in": "query",
|
||||
"name": "serviceAgreementId",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"description": "This URL is only valid if Brizo acts as a proxy. Consumer can't download using the URL if it's not through Brizo.",
|
||||
"in": "query",
|
||||
"name": "url",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": { "description": "Redirect to valid asset url." },
|
||||
"400": {
|
||||
"description": "One of the required attributes is missing."
|
||||
},
|
||||
"401": { "description": "Invalid asset data." },
|
||||
"500": { "description": "Error" }
|
||||
},
|
||||
"summary": "Allows download of asset data file.",
|
||||
"tags": ["services"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"swagger": "2.0"
|
||||
}
|
@ -37,26 +37,6 @@ exports.onCreateNode = ({ node, getNode, actions }) => {
|
||||
}
|
||||
}
|
||||
|
||||
// https://github.com/swagger-api/swagger-js
|
||||
const getSpec = async () => {
|
||||
const spec = await Swagger(
|
||||
'http://petstore.swagger.io/v2/swagger.json'
|
||||
).then(client => {
|
||||
return client.spec // The resolved spec
|
||||
|
||||
// client.originalSpec // In case you need it
|
||||
// client.errors // Any resolver errors
|
||||
|
||||
// Tags interface
|
||||
// client.apis.pet.addPet({id: 1, name: "bobby"}).then(...)
|
||||
|
||||
// TryItOut Executor, with the `spec` already provided
|
||||
// client.execute({operationId: 'addPet', parameters: {id: 1, name: "bobby") }).then(...)
|
||||
})
|
||||
|
||||
return spec
|
||||
}
|
||||
|
||||
exports.createPages = ({ graphql, actions }) => {
|
||||
const { createPage, createRedirect } = actions
|
||||
|
||||
@ -152,44 +132,77 @@ exports.createPages = ({ graphql, actions }) => {
|
||||
//
|
||||
// Create pages from swagger json files
|
||||
//
|
||||
const swaggerSpecs = [
|
||||
'./data/aquarius.json',
|
||||
'./data/brizo.json'
|
||||
]
|
||||
const swaggerComponents = ['aquarius', 'brizo']
|
||||
const apiSwaggerTemplate = path.resolve(
|
||||
'./src/templates/Swagger/index.jsx'
|
||||
)
|
||||
|
||||
swaggerSpecs.forEach(spec => {
|
||||
const api = require(spec) // eslint-disable-line
|
||||
const name = path
|
||||
.basename(spec)
|
||||
.split('.json')
|
||||
.join('')
|
||||
const slug = `/references/${name}/`
|
||||
// https://github.com/swagger-api/swagger-js
|
||||
const fetchSwaggerSpec = async name => {
|
||||
try {
|
||||
const client = await Swagger(
|
||||
`https://nginx-${name}.dev-ocean.com/spec`
|
||||
)
|
||||
return client.spec // The resolved spec
|
||||
|
||||
createPage({
|
||||
path: slug,
|
||||
component: apiSwaggerTemplate,
|
||||
context: {
|
||||
slug,
|
||||
api
|
||||
}
|
||||
})
|
||||
// client.originalSpec // In case you need it
|
||||
// client.errors // Any resolver errors
|
||||
|
||||
// Tags interface
|
||||
// client.apis.pet.addPet({id: 1, name: "bobby"}).then(...)
|
||||
|
||||
// TryItOut Executor, with the `spec` already provided
|
||||
// client.execute({operationId: 'addPet', parameters: {id: 1, name: "bobby") }).then(...)
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
}
|
||||
}
|
||||
|
||||
const getSlug = name => {
|
||||
const slug = `/references/${name}/`
|
||||
return slug
|
||||
}
|
||||
|
||||
const specAquarius = await fetchSwaggerSpec(
|
||||
swaggerComponents[0]
|
||||
)
|
||||
const slugAquarius = getSlug(swaggerComponents[0])
|
||||
|
||||
createPage({
|
||||
path: slugAquarius,
|
||||
component: apiSwaggerTemplate,
|
||||
context: {
|
||||
slug: slugAquarius,
|
||||
api: specAquarius
|
||||
}
|
||||
})
|
||||
|
||||
// Swagger Pet Store example, fetch from remote
|
||||
const specBrizo = await fetchSwaggerSpec(swaggerComponents[1])
|
||||
const slugBrizo = getSlug(swaggerComponents[1])
|
||||
|
||||
createPage({
|
||||
path: slugBrizo,
|
||||
component: apiSwaggerTemplate,
|
||||
context: {
|
||||
slug: slugBrizo,
|
||||
api: specBrizo
|
||||
}
|
||||
})
|
||||
|
||||
// Swagger Pet Store example
|
||||
const petStoreSlug = '/references/petstore/'
|
||||
|
||||
try {
|
||||
const api = await getSpec()
|
||||
const client = await Swagger(
|
||||
`http://petstore.swagger.io/v2/swagger.json`
|
||||
)
|
||||
|
||||
createPage({
|
||||
path: petStoreSlug,
|
||||
component: apiSwaggerTemplate,
|
||||
context: {
|
||||
slug: petStoreSlug,
|
||||
api
|
||||
api: client.spec
|
||||
}
|
||||
})
|
||||
} catch (error) {
|
||||
|
Loading…
Reference in New Issue
Block a user