3

I am a noob at coding, so forgive me for this rather trivial question.

I am trying to make a program that can access the Stack Exchange API. Specifically I want to make a program that gets live question feed (preferably as a question object) from any Stack Exchange site of my choice.

I have scoured the Stack Exchange API page but I'm not able to understand how to exactly code it. I usually learn by examples. For example, I know that to access discord.js I write in my JS code as:

const Discord = require('discord.js');
const bot = new Discord.Client();

bot.on('message', (message) => {
    //code to deal with message
});

bot.login('BOT-TOKEN-HERE');

Is there any standard template such as the example I gave for API Stack Exchange? For certain, I'm sure we would have require('stackexchange-node'); (I believe stackexchange-node is the official SE npm package) and as well as a constructor.

3

1 Answer 1

2

There is an example of how to invoke the constructor here:

// app/src/resolvers.js
const stackexchange = require('stackexchange-node');
const config = require('../config/config');

const options = {version: 2.2};
const context = new stackexchange(options);

const API_KEY = config['API_KEY'];

const resolvers = {
    Query: {
        questions: async (root, {tagged, limit, sort, score}) => {
           var result;

           await _getQuestionsByFilter(tagged, limit, sort, score).then(function (data) {
               result = data.items;
           });

           return result;
        }
    },
};

async function _getQuestionsByFilter (tagged, limit, sort, score) {
    return await _getQuestionsStackExchangeApi(tagged, limit, sort, score);
}

function _getQuestionsStackExchangeApi(tagged, limit, sort, score) {
    let filter = {
        key: API_KEY,
        pagesize: limit,
        tagged: tagged,
        sort: sort,
        score: score,
        order: 'asc'
    };

    return new Promise(function (resolve, reject) {
        context.questions.questions(filter, function (err, results) {
            if (err) throw err;
            resolve(results);
        });
    });
}

module.exports = {resolvers};

As well as an example which uses TypeScript.

References

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.