Не могу вывести имя пользователя в android-приложении с API на Java
занимаюсь своей первой апишкой для мобильного приложения. Проблема такая, что я не могу вывести имя пользователя, опираясь на логин в андроид приложении, используя Get запрос хотя в postman все выводится нормально. Прошу помощи.
Знаю, что по правильному нужно использовать SpringSecurity и JWT, но пока для моего проекта будет достаточно и такого примитива.
Код приложения:
public class MenuActivity extends AppCompatActivity {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://192.168.31.5:8080/api/users/")
.addConverterFactory(GsonConverterFactory.create()) // Use Gson for JSON parsing
.build();
ApiService apiService = retrofit.create(ApiService.class);
private TextView welcomeText;
UsersData usersData = new UsersData();
String loginValue = usersData.getLogin();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
Log.d("test", "Логин: " + loginValue);
Call<String> call = apiService.getUsernameByLogin("SeSo");
call.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
if (response.isSuccessful()) {
String username = response.body();
Log.d("Status", "Имя: " + username);
} else {
// Handle API error
Log.d("Status", "Bad request " + response.code());
}
}
@Override
public void onFailure(Call<String> call, Throwable t) {
Log.d("Don't work", "API Error " + t);
}
});
}
}
Код ApiService в приложении:
@GET("get-username")
Call<String> getUsernameByLogin(@Query("login") String login);
Код API:
@GetMapping("/get-username")
public ResponseEntity<String> getUsernameByLogin(@RequestParam String login) {
Optional<User> user = userRepository.findByLogin(login);
if (user.isPresent()) {
return ResponseEntity.ok(user.get().getFirst_name().toString());
} else {
return ResponseEntity.status(HttpStatus.NOT_FOUND).body("User not found");
}
}