Правильные методы HTTP / аннотации для базовых * CRUD-операций с использованием модернизации? - PullRequest
0 голосов
/ 29 апреля 2020

Я новичок в модернизации и грубых операциях, и мне было интересно, как правильно использовать каждый из них. Я проверил некоторые веб-сайты, подобные этому: https://restfulapi.net/http-methods/, но в настоящее время я там не следую инструкциям, поскольку использую методы в своем приложении android:

public interface Service{

    @GET("selectMethod.php")
    Call<ArrayList<Customers>> selectCustomers();

    @FormUrlEncoded
    @POST("insertMethod.php")
    Call<ResponseBody> insertCustomers(@FieldMap Map<String, String> fields);

    @FormUrlEncoded
    @POST("updateMethod.php")
    Call<ResponseBody> updateCustomers(@FieldMap Map<String, String> fields);

    @FormUrlEncoded
    @POST("deleteMethod.php")
    Call<ResponseBody> deleteCustomers(@FieldMap Map<String, String> fields);
}

Насколько я прочитал, чтобы следовать указаниям REST, я должен выполнить @PATCH вместо @POST в updateCustomers, если я не изменяю полные данные пользователя и мне следует использовать @DELETE вместо @POST для метода deleteCustomers.

Я протестировал приложение и все методы crud работают, но я особенно обеспокоен последним: мне нужно удалить несколько элементов RecyclerView, и мой способ сделать это - сформировать строку с идентификаторы элементов, выбранные с использованием разделителя (пример: «1-2-3» удалит 3 элемента с идентификаторами 1,2 и 3, файл php получает все идентификаторы в строке и выполняет только одну операцию DELETE в базе данных удалить эти 3 элемента) и добавить его в качестве поля для запроса вызова. Если я буду использовать рекомендованный метод и использовать @DELETE вместо этого, я смогу передавать только один идентификатор за раз, что приведет к отправке нескольких операций DELETE в базу данных, когда я думаю, что лучше, скажем, удалить 10 элементы, выбранные с помощью одного запроса, а не с помощью 10 отдельных запросов, не так ли?

Вопросы:

  1. Необходимо ли использовать @PATCH и @DELETE вместо @POST для методов обновления и удаления? С какими проблемами можно столкнуться, если нет?

  2. Если мне нужно изменить метод удаления с @POST на @DELETE, как я могу передать несколько идентификаторов, чтобы удалить несколько элементов таким образом? ?

...