Subconnectin käyttäminen Next.js:ssä eri sivujen tietolähteiden erottamiseen
Subconnect on Next.js:n ominaisuus, jonka avulla voit luoda erillisen yhteyden tietylle sivulle tai sivujoukolle sovelluksessasi. Tästä voi olla hyötyä, jos sinulla on erilaisia tietolähteitä tai sovellusliittymiä, joihin vain tietyt sovelluksesi sivut tarvitsevat pääsyn.
Oletetaan esimerkiksi, että sinulla on blogi, jossa on sekä julkisia että yksityisiä artikkeleita. Haluat ehkä käyttää erillistä tietokantaa tai APIa yksityisille artikkeleille, mutta silti käyttää samaa tietokantaa tai API:ta julkisille artikkeleille. Aliyhteyden avulla voit luoda erillisen yhteyden yksityisille artikkeleille ja käyttää sitä vain, kun käyttäjä on kirjautunut sisään ja valtuutettu tarkastelemaan näitä artikkeleita.
Tässä on esimerkki siitä, kuinka voit käyttää aliyhteyttä Next.js-sovelluksessa:
```
// pages/api/articles.js
import { NextApiRequest, NextApiResponse } from 'next';
const Articles = () => {
// Tämä API-päätepiste palauttaa kaikki julkiset artikkelit
return {
async get() {
const articles = odota fetch('https://my-public-articles.com/api/articles');
return { data: articles };
},
};
};
// pages/api/private-articles. js
import { NextApiRequest, NextApiResponse } from 'next';
const PrivateArticles = () => {
// Tämä API-päätepiste palauttaa kaikki yksityiset artikkelit
return {
async get() {
const articles = await fetch('https://my -private-articles.com/api/articles');
return { data: articles };
},
};
};
// pages/index.js
import { useSubconnect } from 'next/subconnect';
const IndexPage = () => {
// Käytä aliyhteyttä saadaksesi julkiset artikkelit
const { data: publicArticles } = useSubconnect( Articles );
// Käytä aliyhteyttä saadaksesi yksityiset artikkelit, kun käyttäjä on kirjautunut sisään
const { data: privateArticles } = useSubconnect( PrivateArticles, {
auth: true, // Salli pääsy vain, kun käyttäjä on kirjautunut sisään
});
return (
{publicArticles.map((artikkeli) => (
))}
{privateArticles.map((artikkeli) => (
))}
);
};
```
Tässä esimerkissä "Articles"- ja "PrivateArticles"-sovellusliittymät määritellään erillisiksi aliliitoksiksi, joilla kullakin on omat tietolähteensä ja todennusvaatimukset. IndexPage-komponentti käyttää useSubconnect-koukkua julkisten artikkelien hakemiseen Artikkelit-sovellusliittymästä ja käyttää myös useSubconnect-koukkua yksityisten artikkelien hakemiseen PrivateArticles-sovellusliittymästä, kun käyttäjä on kirjautunut sisään.
By. Käyttämällä aliyhteyksiä tällä tavalla voit irrottaa sovelluksesi eri sivujen tietolähteet ja hallita niitä itsenäisesti, mutta silti pystyt käyttämään samaa Next.js-sovellusliittymää ja sivun renderöintiinfrastruktuuria.



