mirror of
https://github.com/oceanprotocol/commons.git
synced 2023-03-15 18:03:00 +01:00
server api readme
This commit is contained in:
parent
db1d215b1c
commit
febd83dc88
139
server/README.md
Normal file
139
server/README.md
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
[![banner](https://raw.githubusercontent.com/oceanprotocol/art/master/github/repo-banner%402x.png)](https://oceanprotocol.com)
|
||||||
|
|
||||||
|
<h1 align="center">Commons: Server</h1>
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
This folder contains server component written in TypeScript using [Express](https://expressjs.com). The server provides various microservices, like remote file checking, retiring and updating metadata.
|
||||||
|
|
||||||
|
To spin up the server in a watch mode for local development, execute:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install
|
||||||
|
npm start
|
||||||
|
```
|
||||||
|
|
||||||
|
## ✨ API Documentation
|
||||||
|
|
||||||
|
### 1. Url Checker
|
||||||
|
|
||||||
|
Url Checker returns if file exists, size and additional information about requested file. This service is used as a solution to frontend CORS restrictions.
|
||||||
|
|
||||||
|
**Endpoint:** POST `/api/v1/urlcheck`
|
||||||
|
|
||||||
|
**Input Parameters:**
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"url": "https://oceanprotocol.com/tech-whitepaper.pdf"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Return Value**
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"status": "success",
|
||||||
|
"result": {
|
||||||
|
"found": true,
|
||||||
|
"contentLength": "2989228",
|
||||||
|
"contentType": "application/pdf"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Return Value (file not found)**
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"status": "error",
|
||||||
|
"message": null
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Retire asset
|
||||||
|
|
||||||
|
Retires asset from Commons Marketplace. To verify owner, he needs to sign `You are retiring <asset did>` with crypto wallet and send in both signature and did.
|
||||||
|
|
||||||
|
**Endpoint:** POST `/api/v1/retireddo`
|
||||||
|
|
||||||
|
**Input Parameters:**
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"did": "did:op:1e69c2ae7cca4c0e852204443208c12c3aa58bfd67c7451cb1ee770df1dcae2b",
|
||||||
|
"signature": "<signature of `You are retiring <asset did>`>"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Return Value**
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"status": "success"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Return Value (wrong signature)**
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"status": "error",
|
||||||
|
"message": "Not owner of asset"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Update asset
|
||||||
|
|
||||||
|
Updates asset on Commons Marketplace. To verify owner, he needs to sign `You are updating <asset did>` with crypto wallet and send in both signature and did.
|
||||||
|
|
||||||
|
**Endpoint:** POST `/api/v1/updateddo`
|
||||||
|
|
||||||
|
**Input Parameters:**
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"did": "did:op:1e69c2ae7cca4c0e852204443208c12c3aa58bfd67c7451cb1ee770df1dcae2b",
|
||||||
|
"metadata": "TBD",
|
||||||
|
"signature": "<signature of `You are retiring <asset did>`>"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Return Value**
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"status": "success"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Return Value (wrong signature)**
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"status": "error",
|
||||||
|
"message": "Not owner of asset"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🎁 Contributing
|
||||||
|
|
||||||
|
See the page titled "[Ways to Contribute](https://docs.oceanprotocol.com/concepts/contributing/)" in the Ocean Protocol documentation.
|
||||||
|
|
||||||
|
## 🏛 License
|
||||||
|
|
||||||
|
```text
|
||||||
|
Copyright 2018 Ocean Protocol Foundation Ltd.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
```
|
@ -53,8 +53,8 @@ app.use(bodyParser.urlencoded({ extended: false }))
|
|||||||
app.use(compression())
|
app.use(compression())
|
||||||
// routes
|
// routes
|
||||||
app.use('/api/v1/urlcheck', UrlCheckRouter)
|
app.use('/api/v1/urlcheck', UrlCheckRouter)
|
||||||
app.use('/api/v1/updateDdo', UpdateRouter)
|
app.use('/api/v1/updateddo', UpdateRouter)
|
||||||
app.use('/api/v1/retireDdo', RetireRouter)
|
app.use('/api/v1/retireddo', RetireRouter)
|
||||||
|
|
||||||
/// catch 404
|
/// catch 404
|
||||||
app.use((req, res) => {
|
app.use((req, res) => {
|
||||||
|
Loading…
Reference in New Issue
Block a user