Accès à la plateforme API

La documentation de l’API d’EPC se trouve sur Swagger, où nous hébergeons tous les services possibles de l’API d’EPC. La documentation complète des opérations de l’API d’EPC est accessible à l’adresse https://YOUREPC.interfacing.com/api/v1/swagger. Swagger s’ouvrira immédiatement, vous permettant d’accéder aux opérations possibles.

Comment utiliser Swagger

Les services sont organisés par sujet. L’expansion de l’un d’entre eux listera chaque requête API possible pour ce sujet. Il existe trois types principaux de requêtes :

  • Get : Équivalent à une requête SQL SELECT
  • Put : Équivalent à une requête SQL UPDATE
  • Post : Équivalent à une requête SQL CREATE

Chaque requête a sa propre section, qui comprend :

1. Un exemple de données/attributs inclus dans la requête

2. Paramètres/filtres que vous pouvez configurer dans la requête (certains sont requis) :

Exemple de code JAVA d’un client complet utilisant Spring Boot :

package com.interfacing.epc.sync.bpc.service;
import java.util.Collection;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Service;
import org.springframework.util.MultiValueMap;
import org.springframework.web.reactive.function.BodyInserters;
import org.springframework.web.reactive.function.client.WebClient;
import lombok.RequiredArgsConstructor;
import reactor.core.publisher.Mono;
import com.interfacing.bpc.api.domain.BaseElement;
import com.interfacing.bpc.api.domain.NodeElement;
import com.interfacing.bpc.api.domain.patch.PatchOperation;
@Service
@RequiredArgsConstructor
public class ItemService {
    private final WebClient bpcClient;
    private final MultiValueMap<String, String> defaultQueryParams; // when retrieving objects
    private final MultiValueMap<String, String> defaultEditParams; // when editing objects
    public Mono<BaseElement> findBaseElement(@NotNull String nodeId) {
        return bpcClient.get()
                .uri(uriBuilder -> uriBuilder.path("/items/{nodeId}").queryParams(defaultQueryParams).build(nodeId))
                .retrieve()
                .bodyToMono(new ParameterizedTypeReference<>() {
                });
    }
    public <T extends NodeElement> Mono<T> findElement(@NotNull String nodeId, Class<T> clazz) {
        return bpcClient.get()
                .uri(uriBuilder -> uriBuilder.path("/items/{nodeId}").queryParams(defaultQueryParams).queryParam("detail", true).build(nodeId))
                .retrieve()
                .bodyToMono(new ParameterizedTypeReference<>() {
                });
    }
    public Mono<String> findDescription(@NotNull String nodeId) {
        return bpcClient.get()
                .uri(uriBuilder -> uriBuilder.path("/items/{nodeId}/description").queryParams(defaultQueryParams).build(nodeId))
                .retrieve()
                .bodyToMono(new ParameterizedTypeReference<>() {
                });
    }
    public Mono<String> findRichTextDescription(@NotNull String nodeId) {
        return bpcClient.get()
                .uri(uriBuilder -> uriBuilder.path("/items/{nodeId}/richTextDescription").queryParams(defaultQueryParams).build(nodeId))
                .retrieve()
                .bodyToMono(new ParameterizedTypeReference<>() {
                });
    }
    public Mono<String> findWebappUrl(@NotNull String nodeId) {
        return bpcClient.get()
                .uri(uriBuilder -> uriBuilder.path("/items/{nodeId}/url/webapp").queryParams(defaultQueryParams).build(nodeId))
                .retrieve()
                .bodyToMono(new ParameterizedTypeReference<>() {
                });
    }
    public Mono<BaseElement> createItem(@NotNull NodeElement nodeElement) {
        return bpcClient.post()
                .uri(uriBuilder -> uriBuilder.path("/items").queryParams(defaultEditParams).build())
                .contentType(MediaType.APPLICATION_JSON)
                .body(BodyInserters.fromValue(nodeElement))
                .retrieve()
                .bodyToMono(new ParameterizedTypeReference<>() {
                });
    }
    public Mono<BaseElement> updateItem(@NotNull NodeElement nodeElement) {
        return bpcClient.put()
                .uri(uriBuilder -> uriBuilder.path("/items/{nodeId}").queryParams(defaultEditParams).build(nodeElement.getNodeId()))
                .contentType(MediaType.APPLICATION_JSON)
                .body(BodyInserters.fromValue(nodeElement))
                .retrieve()
                .bodyToMono(new ParameterizedTypeReference<>() {
                });
    }
    public Mono<Collection<BaseElement>> patchItem(@NotNull String nodeId, @NotEmpty Collection<PatchOperation> patchOperations) {
        return bpcClient.patch().uri(uriBuilder -> uriBuilder.path("/items/{nodeId}").queryParams(defaultEditParams).build(nodeId))
                .contentType(MediaType.APPLICATION_JSON)
                .body(BodyInserters.fromValue(patchOperations))
                .retrieve()
                .bodyToMono(new ParameterizedTypeReference<>() {
                });
    }
}

Réaction

Était-ce utile?

Oui Non
Vous avez indiqué que ce sujet ne vous a pas été utile ...
Pouvez-vous SVP laisser un commentaire nous disant pourquoi? Merci!
Merci pour vos commentaires.

Laissez votre avis sur ce sujet.

SVP ne pas utiliser pour des questions de support technique.
Visit the Support Portal

Valider