import requests, json, sys BASE='http://localhost:8080' UID='739564171091247104' s=requests.Session() def tok(): r=s.get(f'{BASE}/api/auth/debug/token',params={'userId':UID},timeout=15) return r.json()['data'] T=tok() H={'Authorization':'Bearer '+T} def g(path,**pp): return s.get(BASE+path,headers=H,params=pp,timeout=15) def p(path,**data): hh=dict(H); hh['Content-Type']='application/x-www-form-urlencoded' return s.post(BASE+path,headers=hh,data=data,timeout=15) out={} # 1) dict enabled-list: customer_role + customer_type for grp in ['customer_role','customer_type']: r=g('/api/dict/item/enabled-list',groupCode=grp) j=r.json() items=j.get('data') or [] out[f'dict:{grp}']={'http':r.status_code,'success':j.get('success'),'count':len(items), 'names':[i.get('name') for i in items]} # 2) candidate customer search (need an oppId). find one via page r=p('/api/opportunity/page',viewType='MINE',pageNum=1,pageSize=5) recs=(r.json().get('data') or {}).get('content') or [] oppId=recs[0].get('id') if recs else None out['pick_opp']={'http':r.status_code,'oppId':oppId,'total':(r.json().get('data') or {}).get('total')} if oppId: r=p('/api/opportunity/customer/search',oppId=oppId,keyword='',pageNum=1,pageSize=5) j=r.json(); data=j.get('data') or {} cand=data.get('content') or data.get('records') or [] out['customer_search']={'http':r.status_code,'success':j.get('success'),'count':len(cand), 'sample':cand[:2]} # 3) contacts stub for first candidate (or any customerId) cid=cand[0].get('customerId') if cand else 1 r=g('/api/opportunity/customer/contacts', customerId=cid) j=r.json() out['contacts_stub']={'http':r.status_code,'success':j.get('success'), 'data_is_list':isinstance(j.get('data'),list),'count':len(j.get('data') or [])} # contacts for a non-existent customer -> should still be empty list, not error r=g('/api/opportunity/customer/contacts', customerId=999999999) j=r.json() out['contacts_nonexistent']={'http':r.status_code,'success':j.get('success'), 'data_is_list':isinstance(j.get('data'),list),'count':len(j.get('data') or [])} print(json.dumps(out,ensure_ascii=False,indent=2))