Как найти правильную конечную точку для объектов POST-ing JSON в JSONbin, используя модификацию - PullRequest
0 голосов
/ 02 марта 2020

У меня есть JSON объекты в JSONbin.io в следующей структуре.

{
  "beneficiaries": [
    {
      "name": "Brian",
      "staff_no": "12",
      "id": "11111111"
    }],
 "users": [
    {
      "national_id": "10102020",
      "sponsor_no": "01",
      "staff_no": "12",
      "name": "Sonya",
      "birth_date": "24-2-1999",
      "kra_pin": "1111111111",
      "employment_date": "10-1-2019",
      "employment_type": "temporary",
      "email": "email@gmail.com",
      "password": "1"
    }]
}

Я пытаюсь, используя модификацию, POST новые записи данных в users и beneficiaries и т. Д. , Тем не менее, я не могу найти правильную конечную точку для описания в моем jsonBinAPI интерфейсе, как вы можете видеть в фрагменте кода, который я разместил ниже. Всякий раз, когда я запускаю приложение, в моем logcat регистрируется код ответа 404, и новая запись явно не POST-ed.

Основная активность

 pojo_user user = new pojo_user(natid,sponsor_no,staff_no,uname,pass);
                    Retrofit retrofit = new Retrofit.Builder()
                            .baseUrl("https://api.jsonbin.io/")
                            .addConverterFactory(GsonConverterFactory.create())
                            .build();
                    jsonBinAPI jsonbinapi = retrofit.create(jsonBinAPI.class);
                    Call<pojo_user> call = jsonbinapi.setUser(user);
                    call.enqueue(new Callback<pojo_user>() {
                        @Override
                        public void onResponse(Call<pojo_user> call, Response<pojo_user> response) {
                            Log.v("register_retrofit",Integer.toString(response.code()));
                        }

                        @Override
                        public void onFailure(Call<pojo_user> call, Throwable t) {
 Log.v("register_retrofit",t.getMessage());
                        }
                    });

pojo_user

public class pojo_user {
    private String national_id;
    private String sponsor_no;
    private String staff_no;
    private String name;
    private String birth_date;
    private String kra_pin;
    private String employment_date;
    private String employment_type;
    private String email;
    private String password;
    private String log_state;

    public pojo_user(String national_id, String sponsor_no, String staff_no, String name, String password) {
        this.national_id = national_id;
        this.sponsor_no = sponsor_no;
        this.staff_no = staff_no;
        this.name = name;
        this.password = password;
    }


}

jsonBinAPI

import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;


public interface jsonBinAPI {
    @GET("b/5e536928d3c2f35597f6ca46/5")
    Call<jsonBin_response> getJsonBin_response();
    @Headers({"secret-key: <MY_KEY>","Content-Type: application/json","private: false"})
    @POST("b/5e536928d3c2f35597f6ca46/5/users")
    Call<pojo_user> setUser(@Body pojo_user user);
}

Ответы [ 2 ]

1 голос
/ 02 марта 2020

Сначала необходимо проверить их документацию.

Я надеюсь, что вы получите подсказку, чтобы решить свой вопрос по всем вышеуказанным ссылкам.

0 голосов
/ 04 марта 2020

Глядя на документы , кажется, что невозможно добавить новый объект в существующую корзину напрямую. Вы можете достичь этого, создав две коллекции здесь - одну для пользователей, а другую для бенефициаров. Затем добавьте пользовательскую корзину в коллекцию пользователей, используя

   @Headers({
       "Content-Type: application/json",
       "secret-key: <Your secret key>",
       "collection-id: <Collection-ID for users>"
   })
   @POST('b')
   Call<pojo_user> setUser(@Body pojo_user user);

и что-то похожее для бенефициаров.

Маршрут, указанный в документах для создания корзины, просто /b. Вы предоставили b/5e536928d3c2f35597f6ca46/5/users. Возможно, поэтому вы получаете 404.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...