Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
160 changes: 160 additions & 0 deletions ko/api-guide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
## Application Service > ShortURL > API 가이드

### 기본 정보
```http
API Endpoint: https://api-shortly.cloud.toast.com
```

## 단축 URL

### 1. 생성
- 단축 URL을 생성합니다.

[URL]
```http
POST /open-api/v1.0/appkeys/{appkey}/urls
Content-Type: application/json
```

#### 요청

[Path Variables]
| 값 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| appKey | String | O | 서비스 Appkey(**서비스 관리** 탭에서 확인 가능) |

[Request Body]
| 값 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| url | String | O | 원본 URL |
| domain | String | X | 단축 URL에 사용할 도메인(없을 경우 nh.nu로 생성) |
| backHalf | String | X | 단축 URL ID(https://nh.nu/example에서 example을 가리키며, 없을 경우 랜덤 생성) |
| campaigns | List<String> | X | 소속될 캠페인 ID 목록 |
```json
{
"url": "https://nhn.com",
"domain": "nh,nu",
"campaigns": [0,1],
"backHalf": "example"
}
```

#### 응답
```json
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"body": {
"shortUrl": "http://nh.nu/a",
"originUrl": "https://nhn.com",
"status": "ACTIVE",
"backHalfType": "AUTO",
"startAt": "2021-03-26T03:35+0000",
"endAt": "9999-12-31T00:00+0000"
}
}
```

| 값 | 타입 | 설명 |
|---|---|---|
| header.isSuccessful | Boolean | 성공 여부 |
| header.resultCode | Integer | 결과 코드 |
| header.resultMessage | String | 실패 메시지 |
| body.shortUrl | String | 단축된 URL |
| body.originUrl | String | 원본 URL |
| body.status | String | 단축 URL 상태 |
| body.backHalfType | String | 단축 URL 생성 방식 |
| body.startAt | String | 단축 URL 사용 시작 날짜 |
| body.endAt | String | 단축 URL 사용 종료 날짜 |

### 2. 검색
- 단축 URL을 검색합니다.

[URL]
```http
POST /open-api/v1.0/appkeys/{appkey}/domains/{domain}/urls/{backHalf}
Content-Type: application/json
```

#### 요청

[Path Variables]
| 값 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| appKey | String | O | 서비스 Appkey(**서비스 관리** 탭에서 확인 가능) |
| domain | String | O | 도메인 이름 |
| backHalf | String | O | 단축 URL path ID |


#### 응답
```json
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"body": {
"shortUrl": "http://nh.nu/a",
"originUrl": "https://nhn.com",
"status": "ACTIVE",
"backHalfType": "AUTO",
"startAt": "2021-03-26T03:35+0000",
"endAt": "9999-12-31T00:00+0000"
}
}
```

| 값 | 타입 | 설명 |
|---|---|---|
| header.isSuccessful | Boolean | 성공 여부 |
| header.resultCode | Integer | 결과 코드 |
| header.resultMessage | String | 실패 메시지 |
| body.shortUrl | String | 단축된 URL |
| body.originUrl | String | 원본 URL |
| body.status | String | 단축 URL 상태 |
| body.backHalfType | String | 단축 URL 생성 방식 |
| body.startAt | String | 단축 URL 사용 시작 날짜 |
| body.endAt | String | 단축 URL 사용 종료 날짜 |



### 3. QR 코드 검색
- 단축 URL을 생성합니다.

[URL]
```http
POST /domains/{domain}/urls/{backHalf}/qrcode
Content-Type: image/png
```

#### 요청

[Path Variables]
| 값 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| appKey | String | O | 서비스 Appkey(**서비스 관리** 탭에서 확인 가능) |
| domain | String | O | 도메인 이름 |
| backHalf | String | O | 단축 URL path ID |

#### 응답
```json
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"body": "iVBORw0KGgoAAAANSUhEUgAAAIIAAACCAQAAAACieC1QAAAA+0lEQVR4Xu3UsZHEIAwFUO0QkO024BnaIKMlbwNnuwHTkjO3wYwasDMCBp18wbHrxFJ6t4rMCzTigwE61QIf+ZOSAGizNILRCFIuj0yRPzQyeqoeZ9AKVjB6ScN66nMtlGmD0y4uhfPB2eN7Ypdy1JSPpUbSsHTPTNXqBEL6CtCDU8kdMC4urm0XAqGJuA+N9jcfiZS7L73FqaUqkfRcu4HMTk4jPHDpvdvbzCKpgcd2fIgq2Xx342w9aeSnlcWqk+OOcThzS1UifJ95aWpoO5UI/6ezB3h5E2TCb0J5vKQqExoD7rnNLBHK6ZaRUSNHPnExcVXJW33kX8g3k5xLHpTtgoMAAAAASUVORK5CYII="
}
```

| 값 | 타입 | 설명 |
|---|---|---|
| header.isSuccessful | Boolean | 성공 여부 |
| header.resultCode | Integer | 실패 코드(0은 정상) |
| header.resultMessage | String | 실패 메시지 |
| body | String | Base64로 인코딩된 PNG 이미지 |
103 changes: 103 additions & 0 deletions ko/console-guide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
## Application Service > ShortURL > 콘솔 사용 가이드

## URL

### 단축 URL 추가
- **조회 > URL** 탭에서 **URL 추가** 버튼을 클릭하여 새로운 단축 URL을 추가할 수 있습니다.
- 원본 URL, 도메인을 선택하여 새로운 단축 URL을 추가합니다.
- 원하는 URL을 생성하려면 **URL 종류 > 사용자 입력**을 선택하고 원하는 URL을 입력합니다.
- **오픈 일시**와 **만료 일시**는 추가된 URL을 통하여 접속 가능한 기간으로, 특정 시간 이후에 접근을 원하지 않을 경우 유용합니다.

### 단축 URL 조회
- **조회 > URL** 탭에서 추가한 URL 정보를 확인할 수 있습니다.
- `도메인`, `상태` 그리고 `검색어`를 입력하여 URL을 검색할 수 있습니다.
- **복사** 버튼을 클릭하여 손쉽게 링크를 복사할 수 있습니다.
- **비활성화** 버튼을 클릭하여 언제든 사용하고 있는 단축 URL로의 접근을 막을 수 있습니다.
- **삭제** 버튼을 클릭하여 더는 사용하지 않는 단축 URL을 삭제할 수 있습니다.



## 캠페인

### 캠페인 추가
- **조회 > 캠페인** 탭에서 **캠페인 추가** 버튼을 클릭하여 새로운 캠페인을 추가할 수 있습니다.
- **캠페인**은 여러 개의 단축 URL을 포함할 수 있는 이벤트 그룹입니다.
- **소속 URL**에 원하는 URL을 추가하여 관리할 수 있습니다.
- **편집** 버튼을 클릭하여 `소속 URL`을 추가 또는 삭제할 수 있습니다.
- **자세히** 버튼을 클릭하여 캠페인에 포함된 단축 URL 목록을 확인할 수 있습니다.

### 캠페인 조회
- **조회 > 캠페인** 탭에서 `캠페인` 정보를 확인할 수 있습니다.
- `도메인`, `상태` 그리고 `검색어`를 입력하여 캠페인을 검색할 수 있습니다.


## 도메인

### DNS 등록
> IP: 43.227.116.15
- `도메인`을 추가하려면 DNS 서버의 위의 IP로 `도메인`이 등록되어 있어야 합니다.
- `A 레코드`를 보고 검증하기 때문에 `A 레코드`가 존재해야 합니다.
- **nslookup** 명령어를 사용하여 아래와 같이 DNS가 정상적으로 등록되었는지 확인할 수 있습니다.
```bash
...
Name: nh.nu
Address: 43.227.116.15
```
### 도메인 추가
- **관리 > 도메인** 탭에서 **도메인 추가** 버튼을 클릭하여 사용자가 소유하고 있는 도메인을 추가할 수 있습니다.
- `도메인`을 등록할 때 IP가 단축 URL 서버 IP인지 검증합니다.
- **공개 범위**는 같은 조직 내의 여러 프로젝트에서 `도메인`을 공유해서 사용할 수 있도록 제공합니다.
- **자세히** 버튼을 클릭하여 도메인의 자세한 정보를 확인할 수 있습니다.

### 도메인 조회
- **관리 > 도메인** 탭에서 `도메인` 정보를 확인할 수 있습니다.
- **자세히** 버튼을 클릭하여 자세한 도메인 정보를 확인할 수 있습니다.



## 인증서

### 인증서 파일 형식
- `.pem` 형식의 인증서 파일만 지원합니다.
- [passphrase](#passphrase-삭제)가 삭제된 인증서만 추가할 수 있습니다.
- 파일에는 인증서(체인) 정보와 개인 키 정보가 포함되어 있습니다.

```
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
```

### passphrase 삭제
- passphrase는 다음 명령을 사용해 삭제할 수 있습니다.
```bash
openssl rsa -in input.key -out output.key
```

### 인증서 파일(.pem) 생성 방법
1. 인증서 정보를 `.pem` 형식으로 변환합니다.
2. 인증서 체인과 개인 키를 포함하는 단일 `.pem` 파일을 생성합니다.

```bash
cat crt.pem(서버인증서) key.pem(개인키) ca-chain.pem(루트/체인) > result.pem
```

- `cat` 명령어를 이용하여 result.pem 1개 파일로 단순 통합하는 예제입니다.
- 통합된 result.pem 파일을 텍스트 편집기로 열어, PEM 내용 간 구분되어 있는지 꼭 확인해야 합니다.
- 루트/체인 인증서는 차이가 있을 수 있습니다.


### 인증서 추가
- **관리 > 인증서** 탭에서 **인증서 추가** 버튼을 클릭하여 사용자가 소유하고 있는 인증서를 추가할 수 있습니다.
- `인증서`를 업로드하면 인증서를 검증하여 사용할 수 있는 인증서의 경우 자동으로 정보가 콘솔에 표시됩니다.
- 이미 사용되고 있는 인증서는 사용할 수 없습니다.
- **공개 범위**는 같은 조직 내의 여러 프로젝트에서 `인증서`를 공유해서 사용할 수 있도록 제공합니다.
- _wildcard_ 인증서의 경우 하나만 등록할 수 있기 때문에 인증서를 공유받아야만 사용할 수 있습니다.
- **자세히** 버튼을 클릭하여 인증서의 자세한 정보를 확인할 수 있습니다.

### 인증서 조회
- **관리 > 인증서** 탭에서 `인증서` 정보를 확인할 수 있습니다.
- **자세히** 버튼을 클릭하여 자세한 인증서 정보를 확인할 수 있습니다.
13 changes: 12 additions & 1 deletion ko/overview.md
Original file line number Diff line number Diff line change
@@ -1 +1,12 @@
## ShortURL
## Application Service > ShortURL > 개요

ShortURL을 사용하면 글쓰기에 제한이 있는 다양한 환경에서 적은 글자 수로 웹 페이지 링크를 공유할 수 있습니다.
손쉬운 연동을 위한 RESTful API를 제공합니다.


## 주요 기능
- 사용자 정의 URL 생성
- QR 코드 지원
- 캠페인을 활용한 여러 개의 링크 리소스 관리
- 사용자 정의 도메인 등록으로 자신만의 브랜딩 링크 활용
- 사용자 정의 SSL 인증서 등록으로 안전하게 링크 공유