Skip to main content

alps-unified-ts

Project description

NPM version PyPI version Maven Central .NET version Release

alps-unified-ts

That is an enhanced TypeScript library of alps-unified. With it you can convert an ALPS API spec to other API spec like openApi, Graph QL Schema.

Very useful to understand the idea of ALPS API is this video on YT: https://www.youtube.com/watch?v=oG6-r3UdenE

Want to know more about ALPS? --> please visit:

Features

  • generating and publishing alps unified libraries for JavaScript, TypeScript, Python, Java and .NET
  • Type support for ALPS specs (see example 'Create from Spec' down below)

Examples

Load from YAML file

You can load the ALPS spec directly from a YAML file. JSON ist atm not supported.

Convert to OpenApi

# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
Alps.unified(Alps.load_yaml("test/todo-alps.yaml"),
    format_type=FormatType.OPENAPI
)

Convert to GraphQL Schema

# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
Alps.unified(Alps.load_yaml("test/todo-alps.yaml"),
    format_type=FormatType.SDL
)

Create from Spec

Creating the API specification from the spec is very powerful. As it gives you much support in an idea like VS as it is typed and documented. So you alway produce valid API specs.

# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
Alps.unified(
    Alps.spec(
        alps={
            "version": "1.0",
            "doc": {
                "value": "Simple Todo list example"
            },
            "ext": [{
                "type": "metadata",
                "name": "title",
                "value": "simpleTodo",
                "tags": "oas"
            }, {
                "type": "metadata",
                "name": "root",
                "value": "http://api.example.org/todo",
                "tags": "oas"
            }
            ],
            "descriptor": [{
                "id": "id",
                "type": "semantic",
                "text": "storage id of todo item"
            }
            ]
        }
    ))

For Python to benefit from the types better do this:

import alps_unified_ts as alps

alps_def = alps.AlpsDef(
    version='1.0',
    descriptor=[alps.DescriptorDef(id="id", type="semantic", text="sotrage id of todo item")],
    doc=alps.DocDef(
        value="Simple Todo list example"),
        ext=[
            alps.ExtDef(
                name="root",
                tags="oas",
                type="metadata",
                value="http://api.example.org/todo"),
            alps.ExtDef(
                name="title",
                tags="oas",
                type="metadata",
                value="simpleTodo")])

alps.Alps.unified(alps_document=alps.Alps.spec(alps=alps_def), format_type=alps.FormatType.OPENAPI)

Thanks to

  • The AWS CDK Community for the repo tool projen which I use for this repo.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

alps-unified-ts-0.0.40.tar.gz (209.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

alps_unified_ts-0.0.40-py3-none-any.whl (208.0 kB view details)

Uploaded Python 3

File details

Details for the file alps-unified-ts-0.0.40.tar.gz.

File metadata

  • Download URL: alps-unified-ts-0.0.40.tar.gz
  • Upload date:
  • Size: 209.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.7.9

File hashes

Hashes for alps-unified-ts-0.0.40.tar.gz
Algorithm Hash digest
SHA256 66aa8490ffdb6ec45f3de320adda933368d83b4925521bf3ce46659b96d26fe2
MD5 39434d7ac66c230009c8fd5415da3ccc
BLAKE2b-256 6f3dace93b459db2e4eb5216b7f97c1f79bc2cc821b1db3cbf13ee5c9d3bb7b4

See more details on using hashes here.

File details

Details for the file alps_unified_ts-0.0.40-py3-none-any.whl.

File metadata

  • Download URL: alps_unified_ts-0.0.40-py3-none-any.whl
  • Upload date:
  • Size: 208.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.7.9

File hashes

Hashes for alps_unified_ts-0.0.40-py3-none-any.whl
Algorithm Hash digest
SHA256 b1e7ff44a67bd330814958ff3651ff537c3f7268611c3bef586bcc1c470b0c5d
MD5 a56090a5f3782bbed9382ff32032792f
BLAKE2b-256 5cacdeae4dd81299c4ca539cd21f2ea610c928d92dae4e63db284c09e58b9eb1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page