My App
Specs

flit-client

get many

get many of FlitClient, can retrive list using proerty of entity. refer entity description for detail request output can be csv or json. default is json. when output is csv, response body will be csv file, and use X-OUTPUT-CSV-COLUMNS header to specify columns to include. pagination will be applid. default is

{
  "pageIndex": 1,  //default is 1
  "pageSize": 20   //default is 20, maximum is 50
}

sorting will be applied. default is

{
  "sortBy": "createdAt", //this can be any of sortable fields
  "sortOrder": "DESC"    //this can be ASC or DESC
}
GET
/v1

Query Parameters

uuid?string

uuid of client

email?string

email of client

businessEmail?string

business email of client

channel?string

kakao, naver, google, apple, email

displayName?string

display name of client

pageIndex?number
Default1
pageSize?number
Default20
sortBy?string
Default"createdAt"
sortOrder?string
Default"DESC"
output?unknown

output format

Default"json"

Header Parameters

X-API-KEYstring

API key for authentication

X-OUTPUT-CSV-COLUMNSstring

comma separated column names

Response Body

curl -X GET "https://loading/v1?uuid=string&email=string&businessEmail=string&channel=string&displayName=string&pageIndex=1&pageSize=20&sortBy=createdAt&sortOrder=DESC&output=json" \  -H "X-API-KEY: string" \  -H "X-OUTPUT-CSV-COLUMNS: string"
{
  "isSuccess": true,
  "before": null,
  "data": [
    {
      "uuid": "string",
      "email": "string",
      "businessEmail": "string",
      "channel": "google",
      "password": "string",
      "displayName": "string",
      "authCounter": 0,
      "refreshToken": "string",
      "lastLogin": "string",
      "verifyBusinessAccount": "not-applied",
      "passwordErrorCount": 0,
      "cart": "string",
      "coupons": [
        []
      ],
      "isDeleted": false,
      "favorites": [
        []
      ],
      "agreedMarketing": true,
      "agreedMarketingAt": 0,
      "deviceToken": "string",
      "quitAt": 0,
      "quitReason": "string",
      "isTutorialSkip": true,
      "isAutoSendReceipt": true,
      "isSubscribedPushForPlan": true,
      "isSubscribedPushForPlanReset": true,
      "eventRecord": "",
      "job": null,
      "avgTravelCountPerYear": null,
      "gender": null,
      "birthYear": null
    }
  ],
  "pagination": {
    "pageIndex": 0,
    "pageSize": 0,
    "totalCount": 0
  },
  "timestamp": {
    "begin": "string",
    "end": "string"
  },
  "version": "string",
  "url": "string",
  "tracing": "string"
}

execute business logic

execute business logic for FlitClient

POST
/v1

Header Parameters

X-API-KEYstring

API key for authentication

post operation has following structure

{
  command: string,
  payload: any
}

each of command has its own valid payload schema

{
  command: "getmany",
  payload: {
    conditionOption: {
      ...
      // as use for mongoose find
    },
    paginationOption: {
       ...
      // as using for pagination
      // for example
      // pageIndex: 1, pageSize: 20
    },
  }
}

this getmany command is for complicate query. when if search target fields are nested or array or need to find complicate condition, get method cannot represent all of logic. so when get method is not fit for certain condition, consider using this method

{
  command: "totalcount",
  payload: {
    conditionOption: {
      ...
      // as use for mongoose find
    },
    paginationOption: {
       ...
      // as using for pagination
      // for example
      // pageIndex: 1, pageSize: 20
    },
  }
}

this totalcount command is for counting documents. when client need to know only number of count, then do not need to download entity, for reduce network traffic, client should consider using this method. this two commands are applied all of msa entity controller classes

commandstring

name of logic command

payloadobject

payload of command

Empty Object

Response Body

curl -X POST "https://loading/v1" \  -H "X-API-KEY: string" \  -H "Content-Type: application/json" \  -d '{    "command": "string",    "payload": {}  }'
{
  "isSuccess": true,
  "data": null,
  "timestamp": {
    "begin": "string",
    "end": "string"
  },
  "version": "string",
  "url": "string",
  "tracing": "string"
}

update many

update many of FlitClient

PATCH
/v1

Header Parameters

X-API-KEYstring

API key for authentication

array of

{
  key: Partial<entity>, // condition of update target entity, similar to mongoose find
  update: Partial<entity> // update target entity, similar to mongoose update
}

so this request will update all matched in key condition's entities

Response Body

curl -X PATCH "https://loading/v1" \  -H "X-API-KEY: string" \  -H "Content-Type: application/json" \  -d '[    "string"  ]'
{
  "isSuccess": true,
  "before": null,
  "data": [
    {
      "uuid": "string",
      "email": "string",
      "businessEmail": "string",
      "channel": "google",
      "password": "string",
      "displayName": "string",
      "authCounter": 0,
      "refreshToken": "string",
      "lastLogin": "string",
      "verifyBusinessAccount": "not-applied",
      "passwordErrorCount": 0,
      "cart": "string",
      "coupons": [
        []
      ],
      "isDeleted": false,
      "favorites": [
        []
      ],
      "agreedMarketing": true,
      "agreedMarketingAt": 0,
      "deviceToken": "string",
      "quitAt": 0,
      "quitReason": "string",
      "isTutorialSkip": true,
      "isAutoSendReceipt": true,
      "isSubscribedPushForPlan": true,
      "isSubscribedPushForPlanReset": true,
      "eventRecord": "",
      "job": null,
      "avgTravelCountPerYear": null,
      "gender": null,
      "birthYear": null
    }
  ],
  "pagination": {
    "pageIndex": 0,
    "pageSize": 0,
    "totalCount": 0
  },
  "timestamp": {
    "begin": "string",
    "end": "string"
  },
  "version": "string",
  "url": "string",
  "tracing": "string"
}

delete many

delete many of FlitClient,

DELETE
/v1

Header Parameters

X-API-KEYstring

API key for authentication

array of uuid

Response Body

curl -X DELETE "https://loading/v1" \  -H "X-API-KEY: string" \  -H "Content-Type: application/json" \  -d '[    "string"  ]'
{
  "isSuccess": true,
  "before": null,
  "data": [
    "string"
  ],
  "pagination": {
    "pageIndex": 0,
    "pageSize": 0,
    "totalCount": 0
  },
  "timestamp": {
    "begin": "string",
    "end": "string"
  },
  "version": "string",
  "url": "string",
  "tracing": "string"
}

create many

create many of FlitClient,

PUT
/v1

Header Parameters

X-API-KEYstring

API key for authentication

array of entity

bodystring

Response Body

curl -X PUT "https://loading/v1" \  -H "X-API-KEY: string" \  -H "Content-Type: application/json" \  -d 'string'
{
  "isSuccess": true,
  "before": null,
  "data": [
    {
      "uuid": "string",
      "email": "string",
      "businessEmail": "string",
      "channel": "google",
      "password": "string",
      "displayName": "string",
      "authCounter": 0,
      "refreshToken": "string",
      "lastLogin": "string",
      "verifyBusinessAccount": "not-applied",
      "passwordErrorCount": 0,
      "cart": "string",
      "coupons": [
        []
      ],
      "isDeleted": false,
      "favorites": [
        []
      ],
      "agreedMarketing": true,
      "agreedMarketingAt": 0,
      "deviceToken": "string",
      "quitAt": 0,
      "quitReason": "string",
      "isTutorialSkip": true,
      "isAutoSendReceipt": true,
      "isSubscribedPushForPlan": true,
      "isSubscribedPushForPlanReset": true,
      "eventRecord": "",
      "job": null,
      "avgTravelCountPerYear": null,
      "gender": null,
      "birthYear": null
    }
  ],
  "pagination": {
    "pageIndex": 0,
    "pageSize": 0,
    "totalCount": 0
  },
  "timestamp": {
    "begin": "string",
    "end": "string"
  },
  "version": "string",
  "url": "string",
  "tracing": "string"
}

get one

get one of :id,

GET
/v1/{id}

Path Parameters

id?string

uuid of entity

Header Parameters

X-API-KEYstring

API key for authentication

Response Body

curl -X GET "https://loading/v1/string" \  -H "X-API-KEY: string"
{
  "isSuccess": true,
  "before": null,
  "data": {
    "uuid": "string",
    "email": "string",
    "businessEmail": "string",
    "channel": "google",
    "password": "string",
    "displayName": "string",
    "authCounter": 0,
    "refreshToken": "string",
    "lastLogin": "string",
    "verifyBusinessAccount": "not-applied",
    "passwordErrorCount": 0,
    "cart": "string",
    "coupons": [
      []
    ],
    "isDeleted": false,
    "favorites": [
      []
    ],
    "agreedMarketing": true,
    "agreedMarketingAt": 0,
    "deviceToken": "string",
    "quitAt": 0,
    "quitReason": "string",
    "isTutorialSkip": true,
    "isAutoSendReceipt": true,
    "isSubscribedPushForPlan": true,
    "isSubscribedPushForPlanReset": true,
    "eventRecord": "",
    "job": null,
    "avgTravelCountPerYear": null,
    "gender": null,
    "birthYear": null
  },
  "pagination": {
    "pageIndex": 0,
    "pageSize": 0,
    "totalCount": 0
  },
  "timestamp": {
    "begin": "string",
    "end": "string"
  },
  "version": "string",
  "url": "string",
  "tracing": "string"
}