mirror of
https://github.com/planetmint/planetmint.git
synced 2025-06-06 22:26:42 +00:00
49 lines
1.2 KiB
Python
49 lines
1.2 KiB
Python
# Copyright © 2020 Interplanetary Database Association e.V.,
|
|
# Planetmint and IPDB software contributors.
|
|
# SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0)
|
|
# Code is Apache-2.0 and docs are CC-BY-4.0
|
|
|
|
"""API routes definition"""
|
|
from flask_restful import Api
|
|
from bigchaindb.web.views import (
|
|
assets,
|
|
metadata,
|
|
blocks,
|
|
info,
|
|
transactions as tx,
|
|
outputs,
|
|
validators,
|
|
)
|
|
|
|
|
|
def add_routes(app):
|
|
"""Add the routes to an app"""
|
|
for (prefix, routes) in API_SECTIONS:
|
|
api = Api(app, prefix=prefix)
|
|
for ((pattern, resource, *args), kwargs) in routes:
|
|
kwargs.setdefault('strict_slashes', False)
|
|
api.add_resource(resource, pattern, *args, **kwargs)
|
|
|
|
|
|
def r(*args, **kwargs):
|
|
return (args, kwargs)
|
|
|
|
|
|
ROUTES_API_V1 = [
|
|
r('/', info.ApiV1Index),
|
|
r('assets/', assets.AssetListApi),
|
|
r('metadata/', metadata.MetadataApi),
|
|
r('blocks/<int:block_id>', blocks.BlockApi),
|
|
r('blocks/', blocks.BlockListApi),
|
|
r('transactions/<string:tx_id>', tx.TransactionApi),
|
|
r('transactions', tx.TransactionListApi),
|
|
r('outputs/', outputs.OutputListApi),
|
|
r('validators/', validators.ValidatorsApi),
|
|
]
|
|
|
|
|
|
API_SECTIONS = [
|
|
(None, [r('/', info.RootIndex)]),
|
|
('/api/v1/', ROUTES_API_V1),
|
|
]
|