コード例 #1
0
    def get(self, url, format=None, force_codec=False):
        link = Link(url, action='get')

        decoders = self.decoders
        if format:
            force_codec = True
            decoders = [decoder for decoder in self.decoders if decoder.format == format]
            if not decoders:
                installed_codecs = get_installed_codecs()
                if format in installed_codecs:
                    decoders = [installed_codecs[format]]
                else:
                    raise ValueError("No decoder available with format='%s'" % format)

        # Perform the action, and return a new document.
        transport = determine_transport(self.transports, link.url)
        return transport.transition(link, decoders, force_codec=force_codec)
コード例 #2
0
ファイル: client.py プロジェクト: reidefe/foxy
    def get(self, url, format=None, force_codec=False):
        link = Link(url, action="get")

        decoders = self.decoders
        if format:
            force_codec = True
            decoders = [
                decoder for decoder in self.decoders
                if decoder.format == format
            ]
            if not decoders:
                installed_codecs = get_installed_codecs()
                if format in installed_codecs:
                    decoders = [installed_codecs[format]]
                else:
                    raise ValueError("No decoder available with format='%s'" %
                                     format)

        # Perform the action, and return a new document.
        transport = determine_transport(self.transports, link.url)
        return transport.transition(link, decoders, force_codec=force_codec)
コード例 #3
0
import click
from coreapi.utils import get_installed_codecs

from apistar import schema

codecs = {
    name: codec
    for name, codec in get_installed_codecs().items()
    if '+' in codec.media_type
}


class Format(schema.String):
    description = 'The format for the API Schema output.'
    default = 'corejson'
    choices = list(codecs.keys())


def schema(format: Format) -> None:  # pragma: nocover
    """
    Output an API Schema.
    """
    from apistar.main import get_current_app
    from apistar.apischema import APISchema
    app = get_current_app()
    schema = APISchema.build(app)
    codec = codecs[format]
    output = codec.encode(schema)
    click.echo(output)
コード例 #4
0
ファイル: schema.py プロジェクト: mpicard/apistar
import click
from coreapi.utils import get_installed_codecs

from apistar import schema

codecs = {
    name: codec for name, codec in get_installed_codecs().items()
    if '+' in codec.media_type
}


class Format(schema.String):
    description = 'The format for the API Schema output.'
    default = 'corejson'
    choices = list(codecs.keys())


def schema(format: Format) -> None:  # pragma: nocover
    """
    Output an API Schema.
    """
    from apistar.cli import get_current_app
    from apistar.apischema import APISchema
    app = get_current_app()
    schema = APISchema.build(app)
    codec = codecs[format]
    output = codec.encode(schema)
    click.echo(output)