# 플러그인을 만들지 않고 JSON API를 사용할 수 있나요?

**URL:** https://meta.discourse.org/t/can-i-use-the-json-api-instead-of-building-a-plugin/153998
**Category:** Development
**Created:** [6월 5, 2020, 11:23오후 UTC](https://meta.discourse.org/t/can-i-use-the-json-api-instead-of-building-a-plugin/153998 "2020-06-05T23:23:31Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![JQ331](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@JQ331](https://meta.discourse.org/u/JQ331)
#### Post date: [6월 5, 2020, 11:23오후 UTC](https://meta.discourse.org/t/can-i-use-the-json-api-instead-of-building-a-plugin/153998/1 "2020-06-05T23:23:31Z")

</div>

저는 [여기](https://meta.discourse.org/t/paid-talk-me-through-adding-2-customizations/153756)와 [여기](https://meta.discourse.org/t/how-to-retrieve-group-owners-rails-code-question/153610/5)에 설명된 것과 같은 커스터마이징(예: 그룹 소유자 정보 표시 등)을 진행 중입니다. 이 작업들은 Ember와 Rails에 대한 탄탄한 이해, 그리고 Discourse 코드베이스가 어떻게 구성되어 있는지에 대한 지식이 필수적인 것 같습니다.

그 결과, 진행 속도가 느립니다(저는 Angular와 JavaScript에 더 익숙하고, Discourse는 처음이라서요). 그래서 이러한 커스터마이징을 더 빠르게 마무리할 수 있는 방법을 찾고 있습니다.

질문은 이렇습니다: Discourse 템플트를 조작하는 플러그인을 만드는 대신, \*\*[JSON API](https://docs.discourse.org)\*\*를 사용하여 동일한 결과를 달성할 수 있을까요?

API를 잘 이해하는 것이 Ember와 Discourse 코드베이스를 잘 이해하는 것보다 더 효율적일 것 같고, 순수 JavaScript나 jQuery와 같은 언어로 구현할 수도 있을 것 같습니다.

답은 '예’라고 생각합니다. [팀](https://meta.discourse.org/t/how-to-reverse-engineer-the-discourse-api/20576)이 말했듯이, Discourse가 수행하는 모든 작업은 API를 통해 수행할 수 있다고 합니다.

이 방식이 작동할 것이라 가정하지만, 질문하는 이유는 다음과 같습니다. JSON API의 일반적인 사용 사례는 Discourse 앱과 상호작용하려는 별도의 앱일 것이라고 생각합니다. 제 경우에는 Discourse 앱이 자신의 API를 호출하는 상황이 됩니다.

예를 들어, 이전에 그룹 인덱스 페이지에서 각 그룹의 [소유자 정보](https://meta.discourse.org/t/how-to-retrieve-group-owners-rails-code-question/153610/7)를 검색하고 표시하는 방법에 대해 질문한 적이 있습니다. 일반적으로는 이를 위해 플러그인을 구축하게 됩니다.

제 경우에는 다음과 같은 방식으로 처리할 것입니다–_커스터마이즈 대시보드의 “\<head” 아래에서_–그룹 인덱스 페이지가 로드될 때 AJAX 함수를 호출하여 각 그룹의 소유자를 반환하는 API 호출을 보내고, 그런 다음 해당 정보를 각 그룹 목록에 삽입하는 것입니다.

이 방식이 작동할까요? 해당 요청이 앱 자체에서 발생하기 때문에 API 키를 생성해야 할까요?

---

<div class="post-metadata">

### Author: ![riking](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/riking/32/170938_2.png) [@riking](https://meta.discourse.org/u/riking)
#### Post date: [6월 6, 2020, 12:22오전 UTC](https://meta.discourse.org/t/can-i-use-the-json-api-instead-of-building-a-plugin/153998/2 "2020-06-06T00:22:39Z")

</div>

> [@JQ331](#):
>
> 답은 네이라고 생각합니다. [팀](https://meta.discourse.org/t/how-to-reverse-engineer-the-discourse-api/20576)이 말했듯이, Discourse가 할 수 있는 모든 것은 API를 통해 수행할 수 있습니다.

문제는 \_새로운 종류의 데이터\_를 저장하려면 플러그인이 필요하다는 것입니다. 서버는 데이터를 어디에 저장할지, 어떤 형식이 허용되는지, 누가 데이터를 볼 수 있는지, 그리고 누가 데이터를 수정할 수 있는지를 알아야 합니다.

* * *

그룹 소유자의 신원은 공개되어 있으므로, 테마 컴포넌트를 사용하여 그룹 인덱스 페이지에 이를 로드하고 표시할 수 있습니다 - albeit slowly.

카테고리 추천 주제에 대해서는 실제로 **태그** 를 사용하여 이를 구현하는 테마와 플러그인이 몇 가지 있습니다. 그것들을 살펴본 적이 있으신가요?

---

<div class="post-metadata">

### Author: ![JQ331](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@JQ331](https://meta.discourse.org/u/JQ331)
#### Post date: [6월 6, 2020, 12:40오전 UTC](https://meta.discourse.org/t/can-i-use-the-json-api-instead-of-building-a-plugin/153998/3 "2020-06-06T00:40:58Z")

</div>

좋아요. 아마도 새로운 유형의 데이터를 저장하려는 건 아닐 거예요. 기존 커스텀 필드 형식을 따르면서 커스텀 필드를 다루게 될 것 같습니다.

이전에는 카테고리에서 특정 주제를 강조하는 플러그인을 본 적이 없었어요. 저에게는 카테고리 관리자가 직접 해당 주제를 선택할 수 있는 권한을 주는 것이 핵심입니다. 한번 살펴볼게요.

카테고리 소유자 표시 및 API에서 반환되는 기타 정보 표시를 위해 API를 사용하는 것과 관련하여: 일반적인 빌드 과정보다 약간 느려지는 것은 합리적으로 보이지만, 이 방식이 너무 느리지는 않기를 바랍니다(보통 API에서 정보를 가져와 데이터를 채우는 사이트라면 잘 작동할 것 같거든요).

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [6월 6, 2020, 9:50오전 UTC](https://meta.discourse.org/t/can-i-use-the-json-api-instead-of-building-a-plugin/153998/4 "2020-06-06T09:50:23Z")

</div>

> [@JQ331](#):
>
> 사실 나는 기존 커스텀 필드 형식을 따르는 커스텀 필드를 다룰 것입니다.

플러그인에서만 새로운 커스텀 필드를 선언(및 직렬화)할 수 있습니다.
