Как создать нового пользователя с помощью API в JAVA - PullRequest
0 голосов
/ 30 апреля 2020

Я очень новичок в JAVA, и мне нужно создать SMP на основе HTTP RESTful API, и я работаю над первым API, который должен создать пользователя и вставить его в базу данных. Я уже создал базу данных и таблицы в MYSQL. Я нашел пример кода в сети, и я пытаюсь изменить его так, чтобы он работал для того, что мне нужно, но он не работает, без ошибок, просто не помещая ничего в базу данных. Описание API с ожидаемым выводом плюс код, который у меня есть, приведен ниже. Не весь код, просто код этого API. Так что любая помощь по поводу того, что я делаю неправильно и что мне нужно сделать, чтобы получить его работу, была бы отличной. Также в API. java, где мне нужно поместить каждую конечную точку, и я добавляю вспомогательные функции, которые выполняют функции SQL в DBEngine. java.

/api/createuser     // create a new Instatwitsnapbook user
// Input: curl -d '{"handle":"@cooldude42", "password":"mysecret!", "fullname":"Angus Mize", "location":"Kentucky", "xmail":"none@nowhere.com", "bdate":"1970-07-01"}' -H "Content-Type: application/json" -X POST http://localhost:9990/api/createuser (Links to an external site.)
// Output: {"status":"4"} // positive number is the Identity.idnum created.
// Output: {"status":"-2", "error":"SQL Constraint Exception"}. [EDIT 04/14]
// etc.

API. java

@GET
    @Path("/createuser")
    @Produces(MediaType.APPLICATION_JSON)
    public Response createuser() {
        String responseString = "{}";

        try {
            Map<String, String> teamMap = Launcher.dbEngine.getUsers();
            responseString = Launcher.gson.toJson(teamMap);
        } catch (Exception ex) {
            StringWriter sw = new StringWriter();
            ex.printStackTrace(new PrintWriter(sw));
            String exceptionAsString = sw.toString();
            ex.printStackTrace();
            return Response.status(500).entity(exceptionAsString).build();
        }
        return Response.ok(responseString)
                .header("Access-Control-Allow-Origin", "*").build();
    } // createuser

DBEngine. java

public Map<String,String> createuser() {
        Map<String,String> userIdMap = new HashMap<>();

        PreparedStatement stmt = null;
        try
        {
            Connection conn = ds.getConnection();
            String queryString = null;
            queryString = "INSERT INTO Identity (handle, password, fullname, location, xmail, bdate)";
            stmt = conn.prepareStatement(queryString);
            // No parameters, so no binding needed.
            ResultSet rs = stmt.executeQuery();
            while (rs.next()) {
                //String userId = Integer.toString(rs.getInt("idnum"));
                String handle = rs.getString("handle");
                String password = rs.getString("pass");
                String fullname = rs.getString("fullname");
                String location = rs.getString("location");
                String xmail = rs.getString("email");
                String bdate = rs.getString("bdate");


                userIdMap.put(handle, password, fullname, location, xmail, bdate);
            }
            rs.close();
            stmt.close();
            conn.close();
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
        return userIdMap;
    } // createuser()

1 Ответ

0 голосов
/ 01 мая 2020

Если вы хотите добиться этого:

/api/createuser     // create a new Instatwitsnapbook user
// Input: curl -d '{"handle":"@cooldude42", "password":"mysecret!", "fullname":"Angus Mize", "location":"Kentucky", "xmail":"none@nowhere.com", "bdate":"1970-07-01"}' -H "Content-Type: application/json" -X POST http://localhost:9990/api/createuser (Links to an external site.)
// Output: {"status":"4"} // positive number is the Identity.idnum created.
// Output: {"status":"-2", "error":"SQL Constraint Exception"}. [EDIT 04/14]
// etc.

Тогда вам нужен метод POST в вашем API, а не GET. Один учебник по API здесь

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