ben

OMÜ , Bilgisayar Mühendisliği, 13'

5 Kasım 2015 Perşembe

Rails API-Client-1

Farklı portlarda çalışan  ıkı uygulama arasında veri alışverişi için API Client yöntemini kullanıyoruz.

Ikı uygulamamız olsun, A uygulaması içerisinde Person Modelimiz olsun (veritabanı  kendisinde), B uygulamamız ise A uygulamasındaki Person modelindeki verileri alsın ve uzerinde CRUD işlemi yapsın. (B uygulamasının veritabanında person modeli olmayacak ...)

 A uygulamasının Apı controllarını yazmaya başlayalım.

Controllers/api/v1/person_service_controller.rb dosyasını ve hiyerarşisini oluşturalım.

class Api::V1::PersonServiceController < ApplicationController

     respond_to :json, :xml

    def person_all
         respond_with Person.all.to_json
    end
    def person_create
        @pp= Person.new
        @pp.appellation=params["appellation"]
        @pp.name=params[ "name"]
        @pp.speciality=params["speciality"]
        if @pp.save
    render json: "OK", status: :ok 
        else
                render json: "ERROR", status: :ok
        end
    end
    def person_show
           render json: Person.find(params[:person_id].to_i)
    end

    def person_update
     @person= Person.find(params["person_id"].to_i)
     @person.appellation=params["appellation"]
     @person.name=params["name"]
           @person.speciality=params["speciality"]
            if @person.save
      render json: "OK", status: :ok
            else
                  render json: "ERROR", status: :ok
            end
     end

     def person_destroy
     @person=Person.find(params[:person_id].to_i)
     @person.destroy
           if Person.where("id=?",@person[:id]).exists?
                render json: "ERROR", status: :ok
           else
                render json: "OK", status: :ok 
           end
      end 
end


routes.rb dosyasına yönlendirme yapalım

namespace :api do
    namespace :v1 do
            get '/person_all', to: 'person_service#person_all'
            post '/person_create', to: 'person_service#person_create'
            post '/person_show', to: 'person_service#person_show'
            put '/person_update', to: 'person_service#person_update'
            post '/person_destroy', to: 'person_service#person_destroy'
   
    end
  end