This package has been deprecated

Author message:

This package was renamed to @dreipol/interfaces, please remember to update it in your package.json file

@dreipol/default-api-interfaces
TypeScript icon, indicating that this package has built-in type declarations

0.3.4 • Public • Published

default-api-interfaces

This repo shows some default data structure for the APIs.

Folder Structure

src/interfaces/api API for data that is coming from the CMS

src/interfaces/cms Interfaces that represent data coming from the backend/cms

src/interfaces/app Some global interface used by the app structure

src/interfaces/router All Vue routing related interfaces

Guide for adding a new interface

Definitions

Extend framework interface

If you have to extends for example the IRouteData interface that is already given from the framework you can do it like this

export {IData} from '@dreipol/default-api-interfaces';

export interface IAppRouteData extends IData {
    isHeaderColorPrimary: boolean;
}

Group properties

Group properties together. Seperate primitives and non-primitives props for better readability

DO

export interface IProduct {
    name: string;
    color: string;
    abstract: string;
    
    product_image: IImage;
    product_logo: IImage;
    specs: IProductSpecs
    link: ILink;
}

DON'T

export interface IProduct {
    name: string;
    product_logo: IImage;
    specs: IProductSpecs
    color: string;
    product_image: IImage;
    abstract: string;
    link: ILink;
}

Use primitive types

DO Use primitve types like string, or number

export interface IImage {
    url: string;
    alt: string;
}

DON'T - Do not use the type String or Number

export interface IImage {
    url: String;
    alt: String;
}

What a default response should look like

Interface

{
    "data": {
        "containers": {
            "main": {
                "type": "cmp-main",
                "plugins": [...]
            }
        },
        "meta": {
            "title": "Cas Study #2",
            "description": ""
        }
    }
}

Readme

Keywords

none

Package Sidebar

Install

npm i @dreipol/default-api-interfaces

Weekly Downloads

45

Version

0.3.4

License

MIT

Unpacked Size

12.5 kB

Total Files

45

Last publish

Collaborators

  • hannahku
  • philipplaeubli
  • fabricetobler
  • thibi