import {Component, OnDestroy, OnInit} from "@angular/core"; import {StakeholderService} from "../openaireLibrary/monitor/services/stakeholder.service"; import {Stakeholder} from "../openaireLibrary/monitor/entities/stakeholder"; import {Subscription} from "rxjs"; import {Meta, Title} from "@angular/platform-browser"; import {SEOService} from "../openaireLibrary/sharedComponents/SEO/SEO.service"; import {properties} from "../../environments/environment"; import {Router} from "@angular/router"; import {StakeholderUtils} from "../utils/indicator-utils"; import {OpenaireEntities} from "../openaireLibrary/utils/properties/searchFields"; import {EnvProperties} from "../openaireLibrary/utils/properties/env-properties"; @Component({ selector: 'develop', template: `

Help developers
with OpenAIRE APIs.

For {{openaireEntities.RESULTS | lowercase}}

For {{openaireEntities.RESULTS | lowercase}} ({{openaireEntities.PUBLICATIONS | lowercase}}, {{openaireEntities.DATASETS | lowercase}}, {{openaireEntities.SOFTWARE | lowercase}} and {{openaireEntities.OTHER | lowercase}}) you can use the Selective Access APIs by adding the funder parameter.
Selective Access APIs

For {{openaireEntities.PROJECTS | lowercase}}

For {{openaireEntities.PROJECTS | lowercase}} you can use the Selective Access APIs and the Bulk Access APIs.
Request examples for {{openaireEntities.RESULTS | lowercase}}:
  • Access “{{openaireEntities.PUBLICATIONS}}”
    GET https://api.openaire.eu/search/publications?funder={{stakeholder.index_shortName}}
  • Access “Open Access {{openaireEntities.PUBLICATIONS}}”
    GET http://api.openaire.eu/search/publications?funder={{stakeholder.index_shortName}}&OA=true
  • Access “{{openaireEntities.DATASETS}}”
    GET https://api.openaire.eu/search/datasets?funder={{stakeholder.index_shortName}}
  • Access “{{openaireEntities.SOFTWARE}}”
    GET https://api.openaire.eu/search/software?funder={{stakeholder.index_shortName}}
  • Access “{{openaireEntities.OTHER}}”
    GET https://api.openaire.eu/search/other?funder={{stakeholder.index_shortName}}
Request examples for {{openaireEntities.PROJECTS | lowercase}}:
  • For the “Selective Access”
    https://api.openaire.eu/search/projects?funder={{stakeholder.index_shortName}}
  • For the “Bulk Access”
    DSpace endpoint: https://api.openaire.eu/projects/dspace/{{stakeholder.index_shortName}}/ALL/ ALL
    ePrints endpoint: https://api.openaire.eu/projects/eprints/{{stakeholder.index_shortName}}/ALL/ ALL
` }) export class DevelopComponent implements OnInit, OnDestroy { public stakeholder: Stakeholder; private subscriptions: any[] = []; private stakeholderUtils: StakeholderUtils = new StakeholderUtils(); public type: string; public openaireEntities = OpenaireEntities; public properties: EnvProperties = properties; constructor(private stakeholderService: StakeholderService, private seoService: SEOService, private _meta: Meta, private _router: Router, private _title: Title) { } ngOnInit() { this.subscriptions.push(this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => { this.stakeholder = stakeholder; if (this.stakeholder) { if(stakeholder.type !== "funder") { this.navigateToError(); } /* Metadata */ const url = properties.domain + properties.baseLink + this._router.url; this.seoService.createLinkForCanonicalURL(url, false); this._meta.updateTag({content: url}, "property='og:url'"); const description = "Develop | " + this.stakeholder.name; const title = "Develop | " + this.stakeholder.name; this._meta.updateTag({content: description}, "name='description'"); this._meta.updateTag({content: description}, "property='og:description'"); this._meta.updateTag({content: title}, "property='og:title'"); this._title.setTitle(title); /* Initializations */ this.stakeholderUtils.types.forEach(type => { if (type.value === stakeholder.type) { this.type = type.label; } }); } })); } private navigateToError() { this._router.navigate([this.properties.errorLink], {queryParams: {'page': this._router.url}}); } ngOnDestroy() { this.subscriptions.forEach(subscription => { if (subscription instanceof Subscription) { subscription.unsubscribe(); } }); } }