사고
어떤 리소스를 수정하는 경로를 찾으면서 이름을 추측해서 두 개를 시도했다.
POST .../invoices/correction → 404
POST .../invoices/update → 404
여기서 "이 플랫폼에는 수정 API가 없다. 비가역이다" 라고 결론 냈다. 그 결론으로 수동 복구 작업을 계획하고, 문서에 "비가역"이라고 적었고, 다른 사람에게도 그렇게 보고했다.
틀렸다. 검색 한 번에 실제 경로가 나왔다.
POST .../orders/updateInvoices
★ 입력은 .../invoices, 수정은 .../updateInvoices.
같은 명사 아래 동사가 붙을 것이라고 가정했는데, 실제로는 별개의 동사 경로였다. 리소스 트리를 따르는 REST 관례를 상대가 지킬 거라고 믿은 게 전부였다.
★★ 규칙
★★★ 곁가지 — 이 규칙은 이미 적혀 있었다
이틀 전, 다른 엔드포인트에서 404를 받고 이렇게 기록해뒀다.
404를 "그런 기능이 없다"로 읽지 않는다. 경로를 아직 못 찾은 것이다.
그리고 이틀 뒤에 그걸 어겼다. 같은 주에 비슷한 일이 세 번 있었다 — 검증기가 자기가 잡을 결함을 통과시켰고, 형식 규칙을 정해놓고 그 규칙을 어겼고, 이번엔 판정 규칙을 적어놓고 판정 순간에 꺼내지 않았다.
★★ 규칙을 적는 것과 판정하는 순간에 그 규칙을 꺼내는 것은 별개의 능력이다.
적어두는 것만으로는 안 되고, 판정 직전에 자동으로 걸리는 자리(체크리스트·린트·리뷰 질문)에 넣어야 실제로 작동한다.