Git Product home page Git Product logo

srv-json-rpc2_0-form's Introduction

О srv-json-rpc2_0-form

  • Сервер отправляет и принимает данные в формате json rpc 2.0 от стороннего клиента Сервер json RPC 2.0 (Сервис):
  • Имеет редактор форм – страницу редактора форм на котором можно задать типы поля, название и описание поля для формы, а также задать название самой формы.
  • После сохранения форма имеет свой уникальный form_uid присвоенный редактором при сохранении, и дату создания формы.
  • Также есть отдельная страница на которой отображаются данные переданные в форму от клиента (client-json-rpc2_0-form) другого сайта через api.

Стек:

  • php ^7.4
  • MariaDb ^10
  • composer ^2
  • nodejs npm

инсталяция:

  • git clone https://github.com/andymab/srv-json-rpc2_0-form.git you-app
  • cd you-app
  • composer all
  • npm install && npm run dev
  • cp .env.example .env
  • В .env установить базу данных, пароль, логин, MAIL_MAILER=log
  • php artisan migrate --seed
  • php artisan key:generate
  • php artisan serve запустится на http://127.0.0.1:8000/ этот адрес должен быть прописан на клиенте ( в моем случае разместил в основном (и единственном ) классе на стороне киента)

Пароли

login: admin@localhost password: admin

Реализация сервера json RPC 2.0 представляет из себя сборку:

Структура

  • Модель User для авторизаций возможно ролей (UserController + migration из коробки)

  • Модель Form

    Schema::create('forms', function (Blueprint $table) {
        $table->id();
        $table->string('name',255); //наименование  формы
        $table->text('description'); //описание  формы
        $table->json('model'); // json модель формы
        $table->softDeletes(); // пометка на удаление
        $table->timestamps(); // создание обновление
    });
    
  • Controller FormController --resource контроллер (создание,обработка, сохранение, удаление )

  • Модель FormData

    Schema::create('form_data', function (Blueprint $table) {
        $table->id();
        $table->unsignedBigInteger('form_uid'); // идентификатор модели формы
        $table->json('data'); // Загружаемые данные из вне
        $table->softDeletes(); // пометка на удаление
        $table->timestamps(); // создание обновление
        $table->foreign('form_uid')->references('id')->on('form');
    });
    
  • Сontroller FormDataController (просмотр журнала заполненых форм в разрезе названий)

  • Procedure FormProcedure Отвечающая за прием передачу форм и данных от сторонннего клиента, в частности реализованно три метода передача пустых форм, передача конкретной пустой формы, прием заполненой формы. По аналогии можно дополнить

      public function getforms()
    {
        return Form::all();
    }


    public function storeformdata(Request $request)
    {
        try {
            $formdata  = new FormData();
            $formdata->form_uid = $request->form_uid;
            $formdata->data = json_encode($request->formdata);
            $formdata->save();
        } catch (\Exception $e) {
            return $e->getMessage();
        }
    }


    public function getform(Request $request)
    {
        return Form::where('id', '=', $request->form_uid)->first();
    }

Пути развития

  • выполнить авторизацию
  • проверка параметров запроса на наличие и правильность заполнение полей конкретной формы.
  • задействование библиотеки https://surveyjs.io/, которая позволяет формировать и отбражать формы любой сложности, а также анкеты

srv-json-rpc2_0-form's People

Contributors

mabandy avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.