이 NodeJS 패키지와 함께 DEV API 사용

소개



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

좋은 웹페이지 즐겨찾기