Primeros pasos en programación reactiva,III

6861 단어 rxjava2micronautjava
이것은 일련의 프로젝트 후 반응 프로그램으로 실천 과정에서 구체적인 응용 프로그램을 형성할 수 있다
네 번째 부분은 네 번째 부분이다.
이것은viendocómopodemos와elmodeloReactivivo로 구성된 중앙위원회로 이 위원회는 유엔 환경영향평가 단말기의 건설에 대한 반응을 책임진다.우리는 계속 노력할 것이다.

  • http://api.open-notify.org/astros.json 우주 비행사들의 에스파시오 섬 생활은 어땠을까

  • http://api.open-notify.org/iss-now.json 페티시옹의 중요한 순간에 우리는 합리적인 방안이 필요하다

    Modelos


    Vamos a Constructuir el modelo que representa a a cada uno de los endpoints
    public class Astronaut {
        public String name;
        public String craft;
    
        @Override
        public String toString(){
            return name+" "+craft;
        }
    }
    
    public class Astros {
    
        public String message;
        public int number;
        public List<Astronaut>people;
    
    }
    
    public class IssPosition {
    
        public double latitude;
        public double longitude;
    
        public String toString(){
            return "lat:"+latitude+" log:"+longitude;
        }
    }
    
    public class Iss {
    
        public IssPosition iss_position;
    
        public String toString(){
            return "current position "+iss_position;
        }
    }
    
    새로운 권력 하방자로서 우리는 통일된 모델을 필요로 하지 않는다
    public class Nasa {
        public Astros astros;
        public Iss iss;
    
        public Nasa astros(Astros astros){
            this.astros=astros;
            return this;
        }
    
        public Nasa iss(Iss iss){
            this.iss=iss;
            return this;
        }
    }
    

    거래처


    새 인터페이스 클라이언트 Micronaut을 정의하여 dichos 모델을 재사용할 수 있도록 합니다
    @Client("http://api.open-notify.org/")
    public interface AstrosClient {
    
        @Get("/astros.json")
        Single<Astros>getAstros();
    
    }
    
    @Client("http://api.open-notify.org/")
    public interface IssClient {
    
        @Get("iss-now.json")
        Single<Iss> getIss();
    
    }
    

    서비스


    미국 항공우주국(Nasa)은 세 가지 다른 형식으로 새로운 항공 서비스를 제공했다Single.

  • NasaService,primero va a llamar a uno de los endpoints de forma bloqueante y después al-otro de la misma forma

  • block,primero va a llamar a uno de lso endpoints de forma reactiva y cuando se complete la llamada se llamaráal segundo endpoints de la mism forma

  • chain, 완전한ambos 이전 결과의 최종 결과
    @Singleton
    public class NasaService {
    
        @Inject
        IssClient issClient;
    
        @Inject
        AstrosClient astrosClient;
    
        public Single<Nasa> blockingGet() {
            ...
        }
    
        public Single<Nasa>chain() {
            ...
        }
    
        public Single<Nasa>zip(){
            ...
        }
    
    }
    

    무대 스케줄


        public Single<Nasa> blockingGet() {
            return Single.create(emitter -> {
                Nasa nasa = new Nasa();
                nasa.astros = astrosClient.getAstros().blockingGet();
                nasa.iss = issClient.getIss().blockingGet();
                emitter.onSuccess(nasa);
            });
        }
    
    이 모드에서 미국 항공우주국(Nasa)의 서비스 건설 프로젝트는 전체 프로젝트를 완성하고 종점까지의 도로에서 완성할 것이다.최종 결과
    내가 보기에, 나는 이것이 잘못이라고 생각한다. 왜냐하면 나는 이것이 매우 중요한 문제라고 생각하기 때문이다.아드마스는 그들이 더 많은 격려를 받기를 바란다고 말했다.

    사슬


        BiFunction<Nasa, SingleEmitter<Nasa>, Disposable> issFunc = (nasa, emitter)->
                issClient.getIss().subscribe(
                        iss ->
                                emitter.onSuccess(nasa.iss(iss))
                        ,
                        err->
                                emitter.onError(err)
                );
    
        BiFunction<Nasa, SingleEmitter<Nasa>, Disposable> astrosFunc = (nasa, emitter)->
                astrosClient.getAstros().subscribe(
                        astros ->
                                issFunc.apply(nasa.astros(astros), emitter)
                        ,
                        err->
                                emitter.onError(err)
                );
    
        public Single<Nasa>chain() {
            return Single.create(
                    emitter -> astrosFunc.apply(new Nasa(), emitter)
            );
        }
    
    메모
    아유다르 에스터 메토도 와모스 아누크 포드리아스 세규르 우산도 클라스zip안니마스 란다스
    Básicamente definimos un métodoBiFunctionque crea unchain(como en caso block)과 lo que hace es aplicar una funciónSingle.이것은 간소화된 기능으로 우주인들로 하여금 스페인과 스페인의 생활을 다시 체험하게 하여 국제 우주정거장의 종점에 대한 구독을 완성할 수 있다.Cuando este segundo endpoint se completa se devuelve el resultado alastrosFunc "오리지널"
    우리의 이념은 형식적으로 모든 사람이 자신의 직책을 이행할 수 있도록 확보해야 한다는 것이다. 이것은 우리의 공동 목표이다.죄악의 금수, 모든 브룩엘 힐로 포드레모스 아세프타 마스가 간청한다.

    지퍼


        public Single<Nasa>zip(){
            return Single.zip(astrosClient.getAstros(), issClient.getIss(),
                    (astros, iss) ->
                            new Nasa().astros(astros).iss(iss));
        }
    
    중간층emitter은 시뮬레이션 형식의 일부로 관찰 가능한, 관찰 가능한, 관찰 가능한, 관찰 가능한, 관찰 가능한, 관찰 가능한 결과의 기능이다.
    메시지
    La lista에서 "fija"의 ejecutar puede, como en este caso, o
    이나 리스타 데엘로스.특히 제10조(creo)에서 관찰할 수 있는 금융기관의 기능
    형식을 해석한 결과.하나의 목록에서, 너는 대상의 수조에서 함수를 찾을 수 있다
    아니, 아니, 아니, 아니, 아니

    컨트롤러


    Básicamente el controller는 간단한 서비스 안내서입니다.
    @Controller("/nasa")
    public class NasaController {
    
        @Inject
        NasaService service;
    
        @Get("/blocking")
        Single<Nasa>blockingGet() {
            return service.blockingGet();
        }
    
        @Get("/chain")
        Single<Nasa>chain() {
            return service.chain();
        }
    
        @Get("/zip")
        Single<Nasa>zip(){
            return service.zip();
        }
    
    }
    

    JMeter


    그는 세 개의 종점을 준비했는데, 각각 한 개의 종점, 한 개의 종점, 한 개의 종점이다.

    무대 스케줄


    잘못된 원인이 무엇인가

    사슬


    왜냐하면 네가 실수를 할 수 있는 건 아무것도 없으니까.

    지퍼


    중대한 문제에서 서로 존중할 수 있도록 잘못을 줄이는 어떠한 조치도 없다

    프로필


    소비자 권익 보호 계획은 가장 효과적인 반응 계획으로 순환과 반응의 가장 좋은 방안이다

    좋은 웹페이지 즐겨찾기