이 NodeJS 패키지와 함께 DEV API 사용
24061 단어 typescriptjavascriptnodenpm
소개
JavaScript 또는 TypeScript를 사용하여 DEV API와 상호 작용할 수 있는 쉬운 방법을 찾고 있다면 제대로 찾아오셨습니다!
나는 최근에 전체 DEV API Documentation에 뛰어들어
devdotto
라는 완전한 유형의 API 래퍼를 만들었습니다. 아직 초기 단계라고 생각하지만 NPM 패키지는 DEV API를 완벽하게 지원합니다.GitHub: https://github.com/Elitezen/devdotto
NPM: https://www.npmjs.com/package/devdotto
이 패키지는 최신 버전의 NodeJS(18.3.0)에 포함된 가져오기 API를 사용하므로 패키지를 테스트하기 전에 업데이트해야 합니다.
설치
npm i devdotto
빠른 예
최신 기사 가져오기
최신 기사를 가져오려면
getArticles()
기능을 사용하십시오.import { getArticles } from 'devdotto';
const articles = await getArticles();
console.log(articles);
산출:
[
{
typeOf: 'article',
id: 1129536,
title: 'Follow Friday: React Edition (1 July 2022)',
description: 'Happy Friday, friends! 🎉 Follow Friday is your weekly opportunity to shout out fellow DEV Community...',
readablePublishDate: 'Jul 1',
slug: 'follow-friday-react-edition-1-july-2022-2kpa',
path: '/devteam/follow-friday-react-edition-1-july-2022-2kpa',
url: 'https://dev.to/devteam/follow-friday-react-edition-1-july-2022-2kpa',
commentsCount: 5,
publicReactionsCount: 20,
collectionId: 18283,
publishedTimestamp: '2022-07-01T14:49:40Z',
positiveReactionsCount: 20,
coverImage: null,
socialImage: 'https://dev.to/social_previews/article/1129536.png',
canonicalUrl: 'https://dev.to/devteam/follow-friday-react-edition-1-july-2022-2kpa',
createdAt: '2022-07-01T14:49:40Z',
editedAt: null,
crosspostedAt: null,
publishedAt: '2022-07-01T14:49:40Z',
lastCommentAt: '2022-07-01T18:06:29Z',
readingTimeMinutes: 1,
tagList: [ 'watercooler', 'meta', 'javascript', 'react' ],
tags: 'watercooler, meta, javascript, react',
user: {
name: 'Erin Bensinger',
username: 'erinposting',
twitterUsername: 'erinposting',
githubUsername: 'erinb223',
websiteUrl: null,
profileImage: 'https://res.cloudinary.com/practicaldev/image/fetch/s--6nTNzTEG--/c_fill,f_auto,fl_progressive,h_640,q_auto,w_640/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/494502/2d4eb07b-a07a-46f9-91cd-1b98d862a13c.png',
profileImage90: 'https://res.cloudinary.com/practicaldev/image/fetch/s--VG4G50pa--/c_fill,f_auto,fl_progressive,h_90,q_auto,w_90/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/494502/2d4eb07b-a07a-46f9-91cd-1b98d862a13c.png'
},
organization: {
name: 'The DEV Team',
username: 'devteam',
slug: 'devteam',
profileImage: 'https://res.cloudinary.com/practicaldev/image/fetch/s--CAGmUhNa--/c_fill,f_auto,fl_progressive,h_640,q_auto,w_640/https://dev-to-uploads.s3.amazonaws.com/uploads/organization/profile_image/1/0213bbaa-d5a1-4d25-9e7a-10c30b455af0.png',
profileImage90: 'https://res.cloudinary.com/practicaldev/image/fetch/s--mbsgKaXh--/c_fill,f_auto,fl_progressive,h_90,q_auto,w_90/https://dev-to-uploads.s3.amazonaws.com/uploads/organization/profile_image/1/0213bbaa-d5a1-4d25-9e7a-10c30b455af0.png'
},
flareTag: {
name: 'watercooler',
bgColorHex: '#D0ECFF',
textColorHex: '#130074'
}
}
...
]
몇 가지 옵션을 제공하여 특정 문서의 범위를 좁힐 수 있습니다.
getArticles({
perPage: 10,
tagsExclude: ['rust', 'php'],
collectionId: '012345',
page: 1,
tags: ['node', 'css', 'react'],
username: 'Some Name',
state: 'rising',
top: 3
})
ID를 사용하여 특정 기사를 가져올 수 있습니다.
const article = await getArticleById('12345');
사용자 가져오기
예제 코드:
const user = await getUserById('12345');
출력 예
{
typeOf: 'user',
id: 12345,
username: 'ktec',
name: 'globalkeith',
twitterUsername: 'ktec',
githubUsername: 'ktec',
summary: null,
location: null,
websiteUrl: null,
joinedAt: 'Mar 21, 2017',
profileImage: 'https://res.cloudinary.com/practicaldev/image/fetch/s--GqCMW2kU--/c_fill,f_auto,fl_progressive,h_320,q_auto,w_320/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/12345/VTpd7P4l.jpg'
}
(예, ID가 12345인 실제 사용자입니다!)
기사 작성 및 편집
인증된 요청을 하려면 먼저 API 키로
DEVClient
를 초기화해야 합니다.import { DEVClient } from 'devdotto';
const key = 'YOUR_API_KEY';
const client = new DEVClient();
await client.authorize(key);
client.createArticle({
title: 'My New Article',
description: 'Making a new article with devdotto!',
bodyMarkdown: '<h1>Hello World!</h1>',
tags: ['node'],
published: false
});
산출
이것은 매우 기본적인 개요였으며 라이브러리에서 사용할 수 있는 다른 많은 기능과 엔드포인트가 있습니다.
기능 및 문서의 전체 목록을 보려면 다음 사이트를 방문하십시오: https://github.com/Elitezen/devdotto
Reference
이 문제에 관하여(이 NodeJS 패키지와 함께 DEV API 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/elitezen/use-the-dev-api-with-this-nodejs-package-2ij텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)