SSM 프로젝트 개발 POST 인터페이스
9766 단어 일 하 다
회사 프로젝트 는 사용자 가 로그 인하 지 않 은 상태 에서 인터페이스 에 접근 하고 데 이 터 를 전송 할 수 있 도록 POST 인 터 페 이 스 를 개발 해 야 한다.
인터페이스 컴 파일
1. 전송 해 야 할 데이터 형식 은 data = {"esealList": [{"id": "1", "name": "xiaoming", "age": "21"}, {...}, {...}]} 입 니 다.이러한 json 형식의 문자열 을 해석 하기 위해 서 항목 은 GSON 을 사용 하여 데 이 터 를 분 석 했 습 니 다. GSON 은 가 져 올 JAR 패 키 지 를 사용 합 니 다. 여 기 는 군말 하지 않 습 니 다.
2. 각 데이터 의 필드 는 여러 개의 pojo 류 와 관련 되 어 있 기 때문에 데 이 터 를 자바 빈 류 로 직접 변환 할 수 없습니다. 또한 data 는 요청 헤드 가 있 기 때문에 GSON 이 data 를 분석 하 는 데 도움 을 줄 보조 류 를 작성 해 야 합 니 다.프로젝트 중의 자물쇠 데 이 터 는 자물쇠 와 기업 두 개의 pojo 류 와 관련 되 고 보조 류 는 다음 과 같다.
//
private class EsealPostOut {
private List esealList;
public List getEsealList() {
return esealList;
}
public void setEsealList(List esealList) {
this.esealList = esealList;
}
}
//
private class EntPostOut {
private List esealList;
public List getEsealList() {
return esealList;
}
public void setEsealList(List esealList) {
this.esealList = esealList;
}
}
3. 정 보 를 되 돌려 주 는 데 사용 할 보조 클래스 를 작성 합 니 다.
private class ResponseCode {
//
private String code;
//
private String msg;
//
private T data;
/**
* 10000:
* 10001: ;
10002: ;
10003: ( );
10004: ;
*/
static final String SUCCESS_CODE = "10000";
static final String FAILKEY_CODE = "10001";
static final String EMPTYDATA_CODE = "10002";
static final String EXCEPTIONDATA_CODE = "10003";
static final String SYSERROR_CODE = "10004";
static final String SUCCESS_MSG = " ";
static final String FAILKEY_MSG = " ";
static final String EMPTYDATA_MSG = " ";
static final String EXCEPTIONDATA_MSG = " ";
static final String SYSERROR_MSG = " ";
public ResponseCode(){};
public ResponseCode(String code, String msg) {
super();
this.code = code;
this.msg = msg;
}
public ResponseCode(String code, String msg, T data) {
super();
this.code = code;
this.msg = msg;
this.data = data;
}
public String getCode() {
return code;
}
public String getMsg() {
return msg;
}
public T getData() {
return data;
}
}
4. data 의 데 이 터 를 검증 하고 필수 필드 와 불 규범 필드 를 검사 합 니 다.
private static void checkEseal(List eseallist, List entlist) {
String regex = "^[a-z0-9A-Z\u4e00-\u9fa5]+$";
String regexMail = "^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$";
String regexPhone = "^[1][3,4,5,7,8][0-9]{9}$";
String regexFax = "^[0][1-9]{2,3}-[0-9]{5,10}$";
for (int i = 0; i < eseallist.size(); i++) {
if("".equals(eseallist.get(i).getEsealId()) || null == eseallist.get(i).getEsealId()) {
list.add(" " + (i + 1) + " esealId ");
}else{
if(!eseallist.get(i).getEsealId().matches(regex) || eseallist.get(i).getEsealId().length() > 50) {
list.add(" " + (i + 1) + " esealId ");
}
}
if("".equals(eseallist.get(i).getCustomsCode()) || null == eseallist.get(i).getCustomsCode()) {
list.add(" " + (i + 1) + " customsCode ");
}else{
if(!eseallist.get(i).getCustomsCode().matches(regex) || eseallist.get(i).getCustomsCode().length() > 20) {
list.add(" " + (i + 1) + " customsCode ");
}
}
if(!"".equals(eseallist.get(i).getVehicleNo()) && null != eseallist.get(i).getVehicleNo()) {
if(!eseallist.get(i).getVehicleNo().matches(regex) || eseallist.get(i).getVehicleNo().length() > 20) {
list.add(" " + (i + 1) + " vehicleNo ");
}
}
if(!"".equals(eseallist.get(i).getSimNo()) && null != eseallist.get(i).getSimNo()) {
if(!eseallist.get(i).getSimNo().matches(regex) || eseallist.get(i).getSimNo().length() > 30) {
list.add(" " + (i + 1) + " simNo ");
}
}
if(!"".equals(eseallist.get(i).getCustomsName()) && null != eseallist.get(i).getCustomsName()) {
if(!eseallist.get(i).getCustomsName().matches(regex) || eseallist.get(i).getCustomsName().length() > 20) {
list.add(" " + (i + 1) + " customsName ");
}
}
if("".equals(entlist.get(i).getEntName()) || null == entlist.get(i).getEntName()) {
list.add(" " + (i + 1) + " entName ");
}else{
if(!entlist.get(i).getEntName().matches(regex) || entlist.get(i).getEntName().length() > 20) {
list.add(" " + (i + 1) + " entName ");
}
}
if(!"".equals(entlist.get(i).getLeadingOfficial()) && null != entlist.get(i).getLeadingOfficial()) {
if(!entlist.get(i).getLeadingOfficial().matches(regex) || entlist.get(i).getLeadingOfficial().length() > 30) {
list.add(" " + (i + 1) + " leadingOfficial ");
}
}
if(!"".equals(entlist.get(i).getContact()) && null != entlist.get(i).getContact()) {
if(!entlist.get(i).getContact().matches(regex) || entlist.get(i).getContact().length() > 30) {
list.add(" " + (i + 1) + " contact ");
}
}
if(!"".equals(entlist.get(i).getAddress()) && null != entlist.get(i).getAddress()) {
if(!entlist.get(i).getAddress().matches(regex) || entlist.get(i).getAddress().length() > 250) {
list.add(" " + (i + 1) + " address ");
}
}
if(!"".equals(entlist.get(i).getMail()) && null != entlist.get(i).getMail()) {
if(!Pattern.compile(regexMail).matcher(entlist.get(i).getMail()).matches() || entlist.get(i).getMail().length() > 50) {
list.add(" " + (i + 1) + " mail ");
}
}
if(!"".equals(entlist.get(i).getPhone()) && null != entlist.get(i).getPhone()) {
if(!Pattern.compile(regexPhone).matcher(entlist.get(i).getPhone()).matches() || entlist.get(i).getPhone().length() > 20) {
list.add(" " + (i + 1) + " phone ");
}
}
if(!"".equals(entlist.get(i).getFax()) && null != entlist.get(i).getFax()) {
if(!Pattern.compile(regexFax).matcher(entlist.get(i).getFax()).matches() || entlist.get(i).getFax().length() > 30) {
list.add(" " + (i + 1) + " fax ");
}
}
}
}
5. 작성 방법 은 사용자 키 키 의 검사, 알림 가 져 오기, 삽입 또는 업데이트 작업 을 수행 하 는 것 을 포함 합 니 다.
Logger log = Logger.getLogger(CopInfoAPI.class);
// list
static List list = new ArrayList();
@SystemLog(logName = "POST ")
@RequestMapping(value="/esealInfoAdd.json", produces = "application/json;charset=utf-8",method=RequestMethod.POST)
@ResponseBody
public ResponseCode doEsealInfoAdd(String key, String data) throws Exception{
//key
GbEntKeysInfo k = this.entKeysService.loadByKey(key);
//key ,
if(" ".equals(k) || null == k) {
log.error(" :" + key);
return new ResponseCode(ResponseCode.FAILKEY_CODE, ResponseCode.FAILKEY_MSG, " ");
}
try{
Gson gson = new Gson();
EsealPostOut record = gson.fromJson(data, EsealPostOut.class);
EntPostOut re = gson.fromJson(data, EntPostOut.class);
// 0,
if(record.getEsealList().size() <= 0) {
log.info("key=" + key + "
data=" + data);
return new ResponseCode(ResponseCode.EMPTYDATA_CODE, ResponseCode.EMPTYDATA_MSG, null);
}
list.clear();
// 0,
checkEseal(record.getEsealList(), re.getEsealList());
// list , list
if(list.size() > 0) {
log.info("key=" + key + "
data=" + data);
return new ResponseCode(ResponseCode.EXCEPTIONDATA_CODE, ResponseCode.EXCEPTIONDATA_MSG, list);
}
for(int i = 0; i < record.getEsealList().size(); i++) {
GbEntInfo ent = this.entService.loadByName(re.getEsealList().get(i).getEntName());
GbEsealInfo eseal = this.esealService.loadByName(record.getEsealList().get(i).getEsealId());
this.entService.saveEsealData(re.getEsealList().get(i), record.getEsealList().get(i), ent, eseal);
}
}catch(Exception e) {
log.info("key=" + key + "
data=" + data);
log.error(e.getMessage());
return new ResponseCode(ResponseCode.SYSERROR_CODE, ResponseCode.SYSERROR_MSG, e.getMessage());
}
log.info("key=" + key + "
data=" + data);
return new ResponseCode(ResponseCode.SUCCESS_CODE, ResponseCode.SUCCESS_MSG, "SUCCESS");
}
6. 데이터베이스 업 무 를 실현 하기 위해 서 는 서 비 스 를 새로 작성 해 야 합 니 다.트 랜 잭 션 통 제 는 service 층 에 만 작용 할 수 있 기 때문에 데이터 의 처 리 는 여러 개의 pojo 류 와 관련 되 기 때문에 여러 개의 표를 삽입 하거나 업데이트 할 때 데이터 가 일치 하도록 해 야 합 니 다.구체 적 인 service 의 작성 은 더 이상 보 여주 지 않 고 자신의 요구 에 따라 써 야 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java swing drawImagegetImage 가 즉시 돌아 오기 때문에 그림 이 불 러 올 때 까지 기다 리 지 않 고 프로그램 에서 다른 작업 을 수행 할 수 있 습 니 다.성능 을 향상 시 킬 수 있 지만 효과 적 인 프로그램 은 더 많은 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.