"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Injee - 프런트엔드 개발자를 위한 구성이 필요 없는 인스턴트 데이터베이스입니다.

Injee - 프런트엔드 개발자를 위한 구성이 필요 없는 인스턴트 데이터베이스입니다.

2024-08-07에 게시됨
검색:589

Injee - The no configuration instant database for frontend developers.

프론트엔드 개발자로서 API가 제공될 때까지 기다리는 것은 고통스러운 일입니다. API가 내장된 기적의 데이터베이스가 있다면 어떨까요? 더 이상 환상이 아닙니다. Injee는 프론트 엔드 개발자를 위해 CRUD API를 사용할 준비가 된 데이터베이스입니다. 이 페이지를 읽으면 인지 사용법과 인지에서 책의 기록을 만드는 방법, 그리고 데이터를 조작하고 검색하는 방법을 배우게 됩니다.

시작하기

자바 설치

이 작업은 한 번만 수행하면 됩니다. 귀하의 컴퓨터에 맞는 Java를 다운로드하려면 https://java.com을 방문하세요. CMD에 설치하거나 터미널에 java --varsion을 입력하면 제대로 작동합니다.

인지 다운로드

여기를 클릭하시면 인지를 다운로드 받으실 수 있습니다. 또는 터미널에서 다음을 사용하세요:

$ wget https://codeberg.org/injee/injee/releases/download/0.2.0/injee-0.2.0.jar

인지 사용

injee jar 파일이 다운로드된 디렉터리로 이동하고 다음을 사용하여 실행합니다.

$ java -jar injee-0.2.0.jar

건강

서버가 실행되고 있는지 확인해 보겠습니다. 우리는 API GET http://localhost:4125/ops/health.

를 사용합니다.

터미널에서 다음을 시도해 보세요.

$ curl -X GET http://localhost:4125/ops/health

출력은 다음과 같아야 합니다.

{
  "health": "ok"
}

책 만들기

그래서 책 저장소를 만들어 보겠습니다. 마술처럼 injee는 책을 만드는 API POST http://localhost:4125/api/books를 가지고 있습니다. 자동차 저장소를 생성하려는 경우 injee에는 API POST http://localhost:4125/api/cars API가 있습니다. 그럼 책을 만들어서 인지에 저장해 볼까요:

$ curl -X POST http://localhost:4125/api/books \
       -H "Content-Type: application/json" \
       -d '{"title": "Treasure Island", "author": "Robert Louis Stevenson"}'

산출

{
  "title": "Treasure Island",
  "author": "Robert Louis Stevenson",
  "id": "722e2b57-59cc-4254-85b5-562858264f75"
}

그래서 Injee는 책을 저장하고, Injee에게 보낸 모든 값이 포함된 JSON과 id라는 이름의 Ney에게 할당된 UUID를 제공합니다.

이제 다른 책을 만들어 보겠습니다.

$ curl -X POST http://localhost:4125/api/books \
       -H "Content-Type: application/json" \
       -d '{"title": "Adventures of Huckleberry Finn", "author": "Mark Twain"}'

산출

{
  "title": "Adventures of Huckleberry Finn",
  "author": "Mark Twain",
  "id": "689976e3-082e-4943-9525-a21b47cba325"
}

그리고 효과가 있어요!

모든 도서 나열

이제 우리가 사용하는 모든 책을 나열하려면 GET http://localhost:4125/api/books:

$ curl -X GET http://localhost:4125/api/books

산출

[
  {
    "title": "Treasure Island",
    "author": "Robert Louis Stevenson",
    "id": "722e2b57-59cc-4254-85b5-562858264f75"
  },
  {
    "title": "Adventures of Huckleberry Finn",
    "author": "Mark Twain",
    "id": "689976e3-082e-4943-9525-a21b47cba325"
  }
]

저희는 저장해 놓은 멋진 책들을 얻었습니다.

책 가져오기

이제 단 한 권의 책을 가져오겠습니다. 이를 위해 API GET http://localhost:4125/api/books/:id:
를 사용합니다.

$ curl -X GET http://localhost:4125/api/books/689976e3-082e-4943-9525-a21b47cba325

산출

{
  "title": "Adventures of Huckleberry Finn",
  "author": "Mark Twain",
  "id": "689976e3-082e-4943-9525-a21b47cba325"
}

따라서 id GET http://localhost:4125/api/books/ 앞에 추가하면 책 한 권의 세부정보를 얻을 수 있습니다.

책 업데이트

책을 업데이트하려면 http://localhost:4125/api/books/:id와 함께 PUT을 사용하고 그 뒤에 책 매개변수를 사용하세요.

$ curl -X PUT http://localhost:4125/api/books/689976e3-082e-4943-9525-a21b47cba325 \
       -H "Content-Type: application/json" \
       -d '{"title": "Adventures of Tom Sawyer"}'

산출

{
  "title": "Adventures of Tom Sawyer",
  "author": "Mark Twain",
  "id": "689976e3-082e-4943-9525-a21b47cba325"
}

위에서 볼 수 있듯이 책 제목이 Adventures of Huckleberry Finn에서 Adventures of Tom Sawyer로 변경되었습니다.

이제 모든 도서를 나열해 보겠습니다.

$ curl -X GET http://localhost:4125/api/books

산출

[
  {
    "title": "Treasure Island",
    "author": "Robert Louis Stevenson",
    "id": "722e2b57-59cc-4254-85b5-562858264f75"
  },
  {
    "title": "Adventures of Tom Sawyer",
    "author": "Mark Twain",
    "id": "689976e3-082e-4943-9525-a21b47cba325"
  }
]

업데이트를 확인합니다.

책 삭제

이제 책을 삭제해 보겠습니다. 이를 위해서는 http://localhost:4125/api/books/:id:
와 함께 DELETE를 사용하세요.

$ curl -X DELETE http://localhost:4125/api/books/689976e3-082e-4943-9525-a21b47cba325

산출

출력이 없습니다. 코드에서 시도하고 응답 개체를 받으면 상태 204를 받아야 합니다.

이제 모든 책을 나열하고 Adventures of Tom Sawyer가 삭제되었는지 확인하겠습니다.

$ curl -X GET http://localhost:4125/api/books

산출

[
  {
    "title": "Treasure Island",
    "author": "Robert Louis Stevenson",
    "id": "722e2b57-59cc-4254-85b5-562858264f75"
  }
]


테이블 나열

이제 사용자를 생성해 보겠습니다.

$ curl -X POST http://localhost:4125/api/users \
       -H "Content-Type: application/json" \
       -d '{"name": "Karthik"}'

산출

{
  "name": "Karthik",
  "created_at": "2024-07-22T11:18:42Z",
  "updated_at": "2024-07-22T11:18:42Z",
  "id": "ad100ab0-7893-421d-9233-353cc8899aa9"
}

이제 우리 DB에는 책과 사용자라는 두 개의 테이블이 있어야 합니다. 다음 API를 사용하여 테이블을 나열해 보겠습니다.

$ curl -X GET http://localhost:4125/ops/tables

산출

[
  "books",
  "users"
]

기록 검색

사용자 테이블에 다른 사용자 레코드를 추가해 보겠습니다.

$ curl -X POST http://localhost:4125/api/users \
       -H "Content-Type: application/json" \
       -d '{"name": "Pari"}'

이제 모든 사용자를 가져와서 추가를 확인하겠습니다.

$ curl -X GET http://localhost:4125/api/users

[
  {
    "name": "Karthik",
    "created_at": "2024-07-22T11:18:42Z",
    "updated_at": "2024-07-22T11:18:42Z",
    "id": "ad100ab0-7893-421d-9233-353cc8899aa9"
  },
  {
    "name": "Pari",
    "created_at": "2024-07-22T11:23:27Z",
    "updated_at": "2024-07-22T11:23:27Z",
    "id": "1f06bb65-1f2d-4980-9cfc-cf3d38c9db7e"
  }
]

이제 사용자에서 문자열을 검색해 보겠습니다.

$ curl -X GET http://localhost:4125/api/users?q=Pari

[
  {
    "name": "Pari",
    "created_at": "2024-07-22T11:23:27Z",
    "updated_at": "2024-07-22T11:23:27Z",
    "id": "1f06bb65-1f2d-4980-9cfc-cf3d38c9db7e"
  }
]

인지를 백업하다

이제 DB를 backup.json이라는 파일로 백업해 보겠습니다.

$ curl -X GET http://localhost:4125/ops/save?file=backup.json

산출

{
  "message": "saved to file backup.json"
}

인지를 막다

마지막으로 인지를 멈추려면 인지가 실행 중인 터미널에서 인지가 실행 중인 터미널에서 Ctrl c를 눌러 중지합니다.

백업 로드 중

인지를 다시 시작해보자:

$ java -jar injee-0.2.0.jar

$ curl -X GET http://localhost:4125/ops/load?file=backup.json

산출

{
  "message": "loaded from file backup.json"
}

이제 원래 DB를 다시 가져와 실행 중입니다. 축하해요.

최신 상태 유지

Injee에 대한 최신 정보를 유지하는 가장 좋은 방법 중 하나는 해당 페이지(https://injee.codeberg.page/)를 팔로우하거나 RSS(https://codeberg.org/injee.rss)를 팔로우하는 것입니다.

릴리스 선언문 이 기사는 https://dev.to/mindaslab/injee-the-no-configuration-instant-database-for-frontend-developers-dli?1에서 복제됩니다. 침해가 있는 경우, [email protected]으로 문의해 주십시오. 그것을 삭제하려면
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3