Download the PHP package rodrigoaramburu/php-json-server without Composer

On this page you can find all versions of the php package rodrigoaramburu/php-json-server. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package php-json-server

PHP JSON Server

PHP JSON Server é uma biblioteca simples para fornecer uma API REST em poucos minutos para ser utilizada em testes de front-end por exemplo.

Ela pode rodar através do servidor build-in do PHP ou ser integrada a um framework com bastante facilidade. Também possui um CLI para iniciar um servidor de maneira rápida e gerar os dados da API.

* NÃO DEVE SER UTILIZADO EM PRODUÇÃO

Inpirada na biblioteca Zlob/php-json-server

Instalação

Via composer composer require rodrigoaramburu/php-json-server.

Criamos um arquivo index.php com o seguinte código.

Ao criar o Server passamos o caminho para o json de dados da API. Nele definimos os dados iniciais e quais coleções a API vai ter. Veja um exemplo de database.json

Cada propriedade do JSON representa uma coleção sendo seu valor um array de objetos contidos na coleção. Podemos ligar um objeto de uma coleção com de outra coleção com uma "chave estrangeira" com o formato <coleção no singular>_id, isto irá fazer com que ao ser recuperada o campo de "chave estrangeira" será substituido pelo resource com o id especificado.

Para carregar todos um resource juntamente com todos os outros que tem que tem uma chave estrangeira para ele adicionamos esta relação a entrada embed-resources do arquivo de dados.

Com o JSON acima a API irá nos fornecer as seguintes rotas.

Method Url
GET /posts
GET /posts/1
GET /posts/comments
GET /posts/1/comments
POST /posts
POST /posts/1/comments
PUT /posts/1
PUT /posts/1/comments/3
DELETE /posts/1
DELETE /posts/1/comments/3

Com o database.json e o index.php podemos rodar a API com o servidor build-in do PHP.

Também podemos integra-lo facilmente com outros frameworks. Veja um exemplo utilizando o Slim.

Como o retorno do método handle é um objeto da interface Psr\Http\Message\ResponseInterface basta retornar para o Slim construir a resposta.

Middlewares

O servidor permite a utilização de middlewares, para isso basta estender a classe abstrata JsonServer\Middlewares\Middleware implementando o método public function process(RequestInterface $request, Handler $handler): ResponseInterface;

E depois adicionar ao $server:

`

Middleware Rota Estática

Podemos criar rotas estáticas utilizando o middleware StaticMiddleware, ele recebe no construtor um array ou o caminho para um arquivo json com as rotas.

Em vez de passar o array podemos passar um json com as configurações das rotas em um arquivo json como static.json.

E adicionamos passamos seu caminho ao middleware

Filtros e Ordenação

Podemos filtrar um recurso por campo passando o campo e o valor como query param:

Podemos ordenar o resultado por um campo passado por query param os parâmetros de _sort para o nome do campo e _order para o sentido (asc, desc);

CLI

Iniciando o servidor

Também é possível iniciar um servidor de forma mais simples através de comando CLI, para isso basta ter os arquivos JSON na pasta e rodar

Podemos passar os seguintes parâmetros:

Parâmetros Descrição
data-dir=PATH especifica o diretório contento os arquivos json como database.json
port=PORT especifica a porta que o servidor irá rodar
--use-static-route habilita o middelware de rotas estáticas, as rotas devem ser especificadas no arquivos static.json

Gerando o database.json

Podemos gerar o arquivo de dados utilizando o seguinte comando

Podemos passar os seguinte parâmentros

Parâmetros Descrição
filename=FILENAME especifica o nome do arquivo que será gravado os dados
embed=RELATIONS especifica as relações dos resources. Deve ser passado no formato: 'resourcePai[resourceFilho1,resourceFilho2]; ... '

Gerando dados dos Resources

Podemos gerar os dados de um resource utilizando o seguinte comando:

Podemos passar os seguinte parâmentros

Parâmetros Descrição
filename=FILENAME especifica o nome do arquivo que será gravado os dados
num=NUM_OF_RESOURCES especifica o número de resources a serem criados
fields=FIELDS_LIST lista de campos a serem criados no resource. Deve ser informado no formato. 'field.type;field.type; ...'. O type deve ser um método do lib Faker, com seus parâmetros(se houver) passados separados por ponto após o nome do método. Ex.: idade.numberBetween.20.70

Gerando rotas estáticas

Podemos gerar o arquivo de rotas estaticas para o middleware StaticMiddleware com o seguinte comando:

Parâmetros Descrição
filename=FILENAME especifica o nome do arquivo que será gravado os dados
path=PATH path da rota
method=METHOD método da rota
body=BODY body da resposta
statusCode=STATUS_CODE código de esta http da resposta
headers=HEADER-LIST lista de header da resposta. Informadado no formato headers="header1 valor-header1 header2 valor-header2"

All versions of php-json-server with dependencies

PHP Build Version
Package Version
Requires php Version >8.0
nyholm/psr7 Version ^1.5
doctrine/inflector Version ^2.0
minicli/minicli Version ^3.2
fakerphp/faker Version ^1.20
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package rodrigoaramburu/php-json-server contains the following files

Loading the files please wait ....