slate/components/api-docs/v1/get.js

144 lines
3.6 KiB
JavaScript
Raw Normal View History

2021-03-22 21:17:42 +03:00
import * as React from "react";
import * as System from "~/components/system";
import CodeBlock from "~/components/system/CodeBlock";
2021-03-22 21:17:42 +03:00
2021-03-24 07:10:26 +03:00
const EXAMPLE_CODE_JS = (key) => `const response = await fetch('https://slate.host/api/v1/get', {
2021-05-26 23:05:13 +03:00
method: 'GET',
2021-03-22 21:17:42 +03:00
headers: {
'Content-Type': 'application/json',
Authorization: 'Basic ${key}',
},
body: JSON.stringify({ data: {
2021-04-23 07:18:02 +03:00
private: false // set private = true to include private collections
2021-03-22 21:17:42 +03:00
}})
});
2021-04-21 03:14:43 +03:00
if (!response) {
console.log("No response");
2021-05-26 23:05:13 +03:00
return;
}
if (!response.ok) {
console.log(response.error);
return response.error;
2021-04-21 03:14:43 +03:00
}
2021-03-22 21:17:42 +03:00
const json = await response.json();
2021-04-21 03:14:43 +03:00
if (json.error) {
console.log(json.error);
} else {
2021-04-23 07:18:02 +03:00
const collections = json.slates;
2021-04-21 03:14:43 +03:00
const user = json.user;
}`;
2021-03-22 21:17:42 +03:00
2021-03-24 07:10:26 +03:00
const EXAMPLE_CODE_PY = (key) => `import requests
2021-03-30 04:19:36 +03:00
import json as JSON
url = "https://slate.host/api/v1/get"
2021-03-24 07:10:26 +03:00
headers = {
2021-03-30 04:19:36 +03:00
"content-type": "application/json",
2021-04-05 23:21:23 +03:00
"Authorization": "Basic ${key}",
2021-03-30 04:19:36 +03:00
}
2021-03-24 07:10:26 +03:00
2021-04-21 03:14:43 +03:00
json = {
"data": {
2021-04-23 07:18:02 +03:00
"private": "false" # set private = true to include private collections
2021-04-21 03:14:43 +03:00
}
}
2021-03-24 07:10:26 +03:00
2021-05-26 23:05:13 +03:00
r = requests.get(url, headers=headers, json=json)
2021-03-24 07:10:26 +03:00
2021-03-30 04:35:06 +03:00
print(JSON.dumps(r.json(), indent=2))`;
2021-03-24 07:10:26 +03:00
2021-04-21 03:14:43 +03:00
const EXAMPLE_RESPONSE = `
{
"decorator": "V1_GET",
"slates": [
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"slatename": "public-example",
"data": {
2021-04-23 07:18:02 +03:00
"body": "just a public collection, nothing special",
2021-04-21 03:14:43 +03:00
"name": "Public Example",
"public": true,
"layouts": {
"ver": "2.0",
"layout": [
{
"h": 200,
"w": 200,
"x": 0,
"y": 0,
"z": 0,
"id": "fce946be-7212-4f62-a74c-adfafd8d0d15"
}
],
"fileNames": false,
"defaultLayout": true
},
"objects": [
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"cid": "bafkreibrpxcv37juaq67it2gu7xyjo5fzq7v3r55ykcgzylvsfljcv3s3a",
"url": "https://slate.textile.io/ipfs/cid-goes-here",
"name": "door.jpg",
"size": 33676,
"type": "image/jpeg",
"title": "Door",
"ownerId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"blurhash": "U6BzILt700IADjWBx]oz00f6?bs:00Rj_Nt7"
}
],
"ownerId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"url": "https://slate.host/devexamples/public-example"
}
}
],
"user": {
"username": "devexamples",
"data": {
"photo": "https://slate.textile.io/ipfs/cid-goes-here",
"body": "A user of slate",
"name": "Bob Smith"
}
}
}`;
2021-03-30 04:19:36 +03:00
export default class APIDocsGet extends React.Component {
render() {
let APIKey = this.props.APIKey;
let language = this.props.language;
let code = {
javascript: EXAMPLE_CODE_JS(APIKey),
python: EXAMPLE_CODE_PY(APIKey),
};
2021-03-24 07:10:26 +03:00
return (
<React.Fragment>
<System.DescriptionGroup
2021-03-30 04:19:36 +03:00
style={{ maxWidth: 640, marginTop: 64 }}
label="Get your data"
2021-04-23 07:18:02 +03:00
description="This API request returns your user data and collections. If the request body is omitted, the request will return only your public collections by default."
2021-03-24 07:10:26 +03:00
/>
<CodeBlock
2021-03-30 04:19:36 +03:00
children={code}
2021-03-24 07:10:26 +03:00
language={language}
2021-03-30 04:19:36 +03:00
style={{ maxWidth: "820px" }}
title="Get your data"
2021-03-30 04:19:36 +03:00
multiLang="true"
onLanguageChange={this.props.onLanguageChange}
2021-03-24 07:10:26 +03:00
/>
2021-04-21 03:14:43 +03:00
<br />
<CodeBlock
children={EXAMPLE_RESPONSE}
style={{ maxWidth: "820px" }}
language="json"
title="Get your data response"
/>
2021-03-24 07:10:26 +03:00
</React.Fragment>
);
2021-03-22 21:17:42 +03:00
}
}