API, 쿼리 실행후 에러 응답시 responseErrorFn을 통해 여러 처리가 가능합니다.
관련 기능과 정책은 아래와 같습니다.
responseErrorFn
- row에 하위 요소들로 에러원본 데이터 접근가능
- throw하면 toast 표시 (실패)
- return 문자열하면 공간에 표시
- return false 하면 아무것도 하지 않음 (에러표시안하거나 따로 직접표시)
- return 하면 기존처럼 표기 (stopPropagation)
- 조회는 공간에 “에러 JSON”
- 수정은 “다시 시도해주세요 alert”
responseErrorFn: |
console.log(row)
console.log(row.error)
console.log(row.error.data)
console.log(row.error.message)
console.log(row.error.status)
console.log(row.error.statusText)
// throw new Error('샛별배송 23:00 이후로 재고 변경이 일시적으로 불가능합니다.')
return '에러 메시지 입니다. 블록 공간에 표시'
// toast('직접 띄우기')
// alert('직접 띄우기')
API YAML 예제
menus:
- path: pages/qP_aiV
name: 새로운 메뉴
pages:
- path: pages/qP_aiV
title: 제목
subtitle: 내용
blocks:
- type: http
name: 4xx POST
axios:
url: https://httpbin.selectfromuser.com/status/401
method: POST
# params:
# - key: t
# responseErrorFn: |
# console.log(row)
# console.log(row.error)
# console.log(row.error.data)
# console.log(row.error.message)
# console.log(row.error.status)
# console.log(row.error.statusText)
# // throw new Error('샛별배송 23:00 이후로 재고 변경이 일시적으로 불가능합니다.')
# return '에러 메시지 입니다. 블록 공간에 표시'
# // toast('직접 띄우기')
# // alert('직접 띄우기')
# return false
- type: http
name: 4xx GET
axios:
url: https://httpbin.selectfromuser.com/status/401
method: GET
params:
- key: t
responseErrorFn: |
console.log(row)
console.log(row.error)
console.log(row.error.data)
console.log(row.error.message)
console.log(row.error.status)
console.log(row.error.statusText)
// throw new Error('샛별배송 23:00 이후로 재고 변경이 일시적으로 불가능합니다.')
// return '에러 메시지 입니다. 블록 공간에 표시'
// toast('직접 띄우기')
// alert('직접 띄우기')
// return false
쿼리 YAML 예제
- type: query
name: QUERY ERROR
resource: mysql.qa
sql: SELECT N()
# sqlType: insert
sqlType: select
params:
- key: t
responseErrorFn: |
// 디비마다 sqlMessage 부분이 다를수있음!
return `에러 메시지 입니다. 블록 공간에 표시 ${row.error.sqlMessage}`
관련하여 도움이 필요하시거나 기능 제안이 있다면 말씀해주세요.
감사합니다.