fix(handler): 药品目录按分页契约修正 YPML00001(T-211)
- DrugQuery.PageNo 去 omitempty(pageNo=0 也上送)+ 加 PageSize - handler Drugs 改 pageNo 必填(parseRequiredInt,缺则返回 400)+ 读 pageSize - 补缺 pageNo 返回 400 的测试 - 依 docx;YPML00001 未真实联调,pageNo 是否真必填待厂家样本核对 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+17
-4
@@ -56,14 +56,19 @@ func (h *PublicHandler) Drugs(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
q := r.URL.Query()
|
||||
pageNo, ok := parseOptionalInt(w, q.Get("pageNo"), "pageNo")
|
||||
pageNo, ok := parseRequiredInt(w, q.Get("pageNo"), "pageNo") // docx: 药品目录是分页查询,pageNo 必填
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
pageSize, ok := parseOptionalInt(w, q.Get("pageSize"), "pageSize")
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
_, result, err := h.client.QueryDrugs(r.Context(), osi.DrugQuery{
|
||||
PageNo: pageNo,
|
||||
YPMC: q.Get("ypmc"),
|
||||
PYM: q.Get("pym"),
|
||||
PageNo: pageNo,
|
||||
PageSize: pageSize,
|
||||
YPMC: q.Get("ypmc"),
|
||||
PYM: q.Get("pym"),
|
||||
})
|
||||
writeRawOrError(w, result, err)
|
||||
}
|
||||
@@ -82,6 +87,14 @@ func (h *PublicHandler) Orgs(w http.ResponseWriter, r *http.Request) {
|
||||
writeRawOrError(w, result, err)
|
||||
}
|
||||
|
||||
func parseRequiredInt(w http.ResponseWriter, raw string, name string) (int, bool) {
|
||||
if raw == "" {
|
||||
writeJSONError(w, http.StatusBadRequest, name+" is required")
|
||||
return 0, false
|
||||
}
|
||||
return parseOptionalInt(w, raw, name)
|
||||
}
|
||||
|
||||
func parseOptionalInt(w http.ResponseWriter, raw string, name string) (int, bool) {
|
||||
if raw == "" {
|
||||
return 0, true
|
||||
|
||||
Reference in New Issue
Block a user