Skip to content

REST‐API

Donghun Park edited this page Dec 31, 2023 · 3 revisions

API

1. 채용공고를 등록합니다.

POST /recruitment/

Request(Body)

{
  "companyID": 1,
  "position": "백엔드 주니어 개발자",
  "reward": 1000000,
  "content": "원티드랩에서 백엔드 주니어 개발자를 채용합니다. 자격요건은..",
  "skill": "Python"
}

Response(201)

{
  "message": "채용 공고를 등록하였습니다.",
  "data": {
    "companyID": 1,
    "position": "백엔드 주니어 개발자",
    "reward": 1000000,
    "content": "원티드랩에서 백엔드 주니어 개발자를 채용합니다. 자격요건은..",
    "skill": "Python",
    "recruitID": "1",
    "createdAt": "2023-10-12T11:39:07.000Z",
    "updatedAt": "2023-10-12T11:39:07.000Z"
  }
}

ERROR(404)

{
  "message": "Company with ID 99 not found.",
  "error": "Not Found",
  "statusCode": 404
}

2. 채용공고를 수정합니다.

PATCH /recruitment/:id

Request(Body)

{
  "position": "백엔드 주니어 개발자",
  "reward": 1500000,
  "content": "원티드랩에서 백엔드 주니어 개발자를 '적극' 채용합니다. 자격요건은..",
  "skill": "NodeJS"
}

Response(200)

{
  "message": "채용공고 11번을 수정하였습니다.",
  "data": {
    "position": "백엔드 주니어 개발자",
    "reward": 1500000,
    "content": "원티드랩에서 백엔드 주니어 개발자를 '적극' 채용합니다. 자격요건은..",
    "skill": "NodeJS"
  }
}

ERROR(400)

{
  "message": "채용공고의 position/reward/content/skill 내용이 비어있습니다.",
  "error": "Bad Request",
  "statusCode": 400
}

3. 채용공고를 삭제합니다.

DELETE /recruitment/:id

Response(200)

{
  "message": "채용공고 14번을 삭제하였습니다."
}

ERROR(404)

{
  "message": "채용공고 14번이 존재하지 않습니다.",
  "error": "Not Found",
  "statusCode": 404
}

4. 채용공고 목록을 가져옵니다.

GET /recruitment

  • Parameters
    • page: 페이지 번호(기본값: 1)
    • rows: 페이지 당 채용공고 개수(기본값: 10)
    • sort: 정렬 방식(기본값: DESC, DESC/ASC)
    • search: 검색 키워드

Response(200)

4-1. 채용공고 목록 확인

GET /recruitment?page=1&rows=10&sort=DESC

{
  "message": "채용공고를 검색하였습니다.",
  "data": [
    {
      "recruitID": 30,
      "position": "백엔드 주니어 개발자",
      "reward": 1500000,
      "skill": "Python",
      "companyID": 1,
      "companyName": "원티드랩",
      "country": "한국",
      "region": "서울"
    },
    {
      "recruitID": 29,
      "position": "백엔드 주니어 개발자",
      "reward": 1000000,
      "skill": "NodeJS",
      "companyID": 3,
      "companyName": "넥슨",
      "country": "한국",
      "region": "판교"
    },
    {
      "recruitID": 28,
      "position": "프론트엔드 개발자",
      "reward": 500000,
      "skill": "javascript",
      "companyID": 1,
      "companyName": "원티드랩",
      "country": "한국",
      "region": "서울"
    },
    ...
  ]
}

Response(200)

4-2. 채용공고 검색

GET /recruitment?page=1&rows=10&sort=ASC&search=nodejs

{
  "message": "채용공고를 검색하였습니다.",
  "data": [
    {
      "recruitID": 10,
      "position": "백엔드 주니어 개발자",
      "reward": 1500000,
      "skill": "NodeJS",
      "companyID": 1,
      "companyName": "원티드랩",
      "country": "한국",
      "region": "서울"
    },
    {
      "recruitID": 26,
      "position": "NodeJS 주니어 개발자",
      "reward": 1500000,
      "skill": "Typescript",
      "companyID": 1,
      "companyName": "원티드랩",
      "country": "한국",
      "region": "서울"
    },
    {
      "recruitID": 29,
      "position": "백엔드 주니어 개발자",
      "reward": 1000000,
      "skill": "NodeJS",
      "companyID": 3,
      "companyName": "넥슨",
      "country": "한국",
      "region": "판교"
    },
    ...
  ]
}

5. 채용공고 상세 페이지를 가져옵니다.

GET /recruitment/:id

Response(200)

{
  "message": "채용 상세 페이지 10번을 검색하였습니다.",
  "data": {
    "recruitID": 10,
    "position": "백엔드 주니어 개발자",
    "reward": 1500000,
    "content": "원티드랩에서 백엔드 주니어 개발자를 '적극' 채용합니다. 자격요건은..",
    "skill": "NodeJS",
    "companyID": 1,
    "companyName": "원티드랩",
    "country": "한국",
    "region": "서울",
    "otherRecruitment": [
      10,
      15,
      ...
    ]
  }
}

ERROR(404)

{
  "message": "회사 ID 99번이 존재하지 않습니다.",
  "error": "Not Found",
  "statusCode": 404
}

6. 사용자는 채용공고에 지원합니다.

POST /recruitment/:id/apply

Request(Body)

{
  "userID": "creator98@naver.com"
}

Response(201)

{
  "message": "10번 채용공고에 지원하였습니다.",
  "data": {
    "recruitID": "10",
    "userID": "creator98@naver.com",
    "createdAt": "2023-10-12T11:39:07.000Z",
    "updatedAt": "2023-10-12T11:39:07.000Z"
  }
}

ERROR(400)

{
  "message": "이미 creator98@naver.com가 지원한 채용공고입니다.",
  "error": "Bad Request",
  "statusCode": 400
}

ERROR(404)

{
  "message": "채용공고 99번이 존재하지 않습니다.",
  "error": "Not Found",
  "statusCode": 404
}