/*Copyright (C) 2026 the APIJSON group. All rights reserved.
This source code is licensed under the Apache License Version 2.0.*/
package apijson;
import java.util.Arrays;
import java.util.List;
/**è¯·æ±æ¹æ³ï¼å¯¹åºorg.springframework.web.bind.annotation.RequestMethodï¼å¤åºGETS,HEADSæ¹æ³
* @author Lemon
*/
public enum RequestMethod {
/**
* 常è§è·åæ°æ®æ¹å¼
*/
GET,
/**
* æ£æ¥ï¼é»è®¤æ¯éç©ºæ£æ¥ï¼è¿åæ°æ®æ»æ°
*/
HEAD,
/**Safe, Single, Simple
*
éå¶æ§GETï¼éè¿POSTæ¥GETæ°æ®ï¼ä¸æ¾ç¤ºè¯·æ±å
容åè¿åç»æï¼å¹¶ä¸æ ¡éªè¯·æ±ï¼ä¸è¬ç¨äºå¯¹å®å
¨è¦æ±æ¯è¾é«ç请æ±
*/
GETS,
/**Safe, Single, Simple
*
éå¶æ§HEADï¼éè¿POSTæ¥HEADæ°æ®ï¼ä¸æ¾ç¤ºè¯·æ±å
容åè¿åç»æï¼å¹¶ä¸æ ¡éªè¯·æ±ï¼ä¸è¬ç¨äºå¯¹å®å
¨è¦æ±æ¯è¾é«ç请æ±
*/
HEADS,
/**
* æ°å¢(æè
说æå
¥)æ°æ®
*/
POST,
/**
* ä¿®æ¹æ°æ®ï¼åªä¿®æ¹ä¼ å
¥å段对åºçå¼
*/
PUT,
/**
* å 餿°æ®
*/
DELETE,
/**
* json å
å«å¤æ¡è¯å¥ï¼æ¯æå¢å æ¹æ¥ã彿°è°ç¨
*/
CRUD;
public static final RequestMethod[] ALL = new RequestMethod[]{ GET, HEAD, GETS, HEADS, POST, PUT, DELETE, CRUD };
public static final List ALL_NAME_LIST = Arrays.asList(
GET.name(), HEAD.name(), GETS.name(), HEADS.name(), POST.name(), PUT.name(), DELETE.name(), CRUD.name()
);
/**æ¯å¦ä¸ºGETè¯·æ±æ¹æ³
* @param method
* @param containPrivate å
å«ç§å¯(éææ)è·åæ¹æ³GETS
* @return
*/
public static boolean isGetMethod(RequestMethod method, boolean containPrivate) {
return method == null || method == GET || (containPrivate && method == GETS);
}
/**æ¯å¦ä¸ºHEADè¯·æ±æ¹æ³
* @param method
* @param containPrivate å
å«ç§å¯(éææ)è·åæ¹æ³HEADS
* @return
*/
public static boolean isHeadMethod(RequestMethod method, boolean containPrivate) {
return method == HEAD || (containPrivate && method == HEADS);
}
/**æ¯å¦ä¸ºæ¥è¯¢çè¯·æ±æ¹æ³
* @param method
* @return 读æä½(GETåæHEADå) - true, åæä½(POST,PUT,DELETE) - false
*/
public static boolean isQueryMethod(RequestMethod method) {
return isGetMethod(method, true) || isHeadMethod(method, true);
}
/**æ¯å¦ä¸ºæ´æ°(å¢å æ¹)çè¯·æ±æ¹æ³
* @param method
* @return 读æä½(GETåæHEADå) - false, åæä½(POST,PUT,DELETE) - true
*/
public static boolean isUpdateMethod(RequestMethod method) {
return ! isQueryMethod(method);
}
/**æ¯å¦ä¸ºå¼æ¾(ä¸éå¶è¯·æ±çç»ææå
å®¹ï¼ææï¼æµè§å¨è½ç´æ¥è®¿é®åæ¥ç)çè¯·æ±æ¹æ³
* @param method
* @return
*/
public static boolean isPublicMethod(RequestMethod method) {
return method == null || method == GET || method == HEAD;
}
/**æ¯å¦ä¸ºç§æ(éå¶è¯·æ±çç»ææå
容)çè¯·æ±æ¹æ³
* @param method
* @return
*/
public static boolean isPrivateMethod(RequestMethod method) {
return ! isPublicMethod(method);
}
public static String getName(RequestMethod method) {
return method == null ? GET.name() : method.name();
}
}