Penso che il motivo per cui non è supportato è perché i parametri denominati nella firma del metodo finiscono per essere parametri di query URL e non vogliono inquinarli con lunghi elenchi di elementi. Inoltre, supportano solo un singolo oggetto di un tipo Entity nella firma, poiché questo diventa automaticamente il "corpo della richiesta". Puoi leggere su di esso here in the docs.
Come per aggirarlo, si crea un oggetto entità contenitore per il "corpo della richiesta". Il piacevole effetto collaterale di questo è che l'API Explorer espande i pezzi dell'oggetto della tua entità nella GUI e ti aiuta a fare correttamente il JSON.
Ecco un esempio che aggiunge una mappa denominata "patchFieldOps" per l'implementazione dell'aggiornamento parziale. Puoi mettere tanti campi nell'oggetto Entity come preferisci. Penso che se si incorporano più tipi definiti dall'utente, sarà necessario avere anche l'annotazione @Entity.
@Entity
public class EndpointUpdateRequestBody {
// Since Google Cloud Endpoints doesn't support HTTP PATCH, we are overloading
// HTTP PUT to do something similar.
private Map<String, String> patchFieldsOps;
public EndpointUpdateRequestBody() {
patchFieldsOps = new HashMap<String, String>();
}
public EndpointUpdateRequestBody(Map<String, String> patchFieldsOps) {
this.patchFieldsOps = patchFieldsOps;
}
public Map<String, String> getPatchFieldsOps() {
return patchFieldsOps;
}
public void setPatchFieldsOps(Map<String, String> patchFieldsOps) {
this.patchFieldsOps = patchFieldsOps;
}
}
...
@ApiMethod(
name = "stuff.update",
path = "stuff/{id}",
httpMethod = ApiMethod.HttpMethod.PUT
)
public Group update(
User apiUser,
@Named("id") String id,
@Nullable @Named("name") String name,
@Nullable @Named("description") String description,
EndpointUpdateRequestBody requestBody)
throws OAuthRequestException, InternalServerErrorException, NotFoundException,
BadRequestException, UnauthorizedException, ConflictException {
Dove hai trovato la documentazione di Google di ciò che è e non è consentito per i tipi di entità? – Drux