Per creare API riposanti utilizzando Yii2, qualcuno ha un buon esempio su come aggiungere una nuova azione in un controller? Grazie.Yii2 API restful - Esempio di aggiunta di una nuova azione
risposta
Non sono sicuro se stai chiedendo azioni aggiuntive accanto a CRUD o solo per CRUD, quindi scrivo nei dettagli per entrambi i casi.
In primo luogo, il framework include \yii\rest\ActiveController
che fornisce la tipica operazione API restful e la gestione degli URL.
In sostanza, il controller predefinisce le operazioni CRUD come segue:
POST /resource
->actionCreate
-> Crea la risorsa
GET /resource/{id}
->actionView
-> Leggi la risorsa
PUT, PATCH /resource/{id}
->actionUpdate
- > Aggiorna la risorsa
DELETE /resource/{id}
->actionDelete
-> Eliminare la risorsa
GET /resource
->actionIndex
-> Elenco di tutte le risorse
L'URL regole di routing e la definizione delle azioni possono essere trovati in \yii\rest\ActiveController
, \yii\rest\UrlRule
e la rispettiva \yii\rest\*Action
.
In secondo luogo, se si desidera aggiungere API più riposante nel controllore, si può semplicemente scrivere il più actionXxxxx()
, e nella configurazione, aggiungere le seguenti regole url sotto urlManager
:
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
[
'class' => 'yii\rest\UrlRule',
'controller' => ['resource'],
'pluralize' => false,
'extraPatterns' => [
'POST {id}/your_preferred_url' => 'xxxxx', // 'xxxxx' refers to 'actionXxxxx'
],
],
],
],
In effetti, questo genererà una nuova regola di routing, che richiede POST /resource/{id}/your_preferred_url
invocherà actionXxxxx
del tuo ResourceController.
Ecco un buon esempio utilizzando Yii 2 modello di applicazione avanzata
https://github.com/deerawan/yii2-advanced-api
più in dettaglio di questo progetto http://budiirawan.com/setup-restful-api-yii2/
inoltre è possibile utilizzare Yii 2 modello di domanda di base se si desidera . quello che devi fare è seguire questo tipo di struttura di cartelle (v1 per la versione) (Yii doc -A module may consist of sub-modules.)(GiovanniDerks - backend sub-modules)
-modules
--api
---v1
----controllers
----models
- 1. Aggiunta nuova azione di ideare registrations_controller
- 2. Esempio di iniezione dipendenza Yii2
- 3. Azione per delegare: nuova azione o azione di lancio?
- 4. Creazione di una semplice API RESTful
- 5. Azione personalizzata nel servizio RESTful
- 6. Aggiunta di una nuova istanza in weka
- 7. Aggiunta di una nuova riga con PHPExcel?
- 8. Aggiunta di una nuova riga in iTextSharp
- 9. Servizio live RESTful esempio
- 10. Esempio reale di eventi in Yii2
- 11. Esempio di un servizio RESTful ben documentato
- 12. Problema di impaginazione nel progetto RESTful API
- 13. Yii2 Webservice RESTful: JSON Formato richiesta
- 14. Symfony2 RESTful API + AngularJS
- 15. RESTful API Authentication
- 16. API Django e Restful
- 17. Aggiunta di una nuova riga a una sottoclasse QAbstractListModel
- 18. Aggiunta di una nuova colonna all'errore di matrice
- 19. Aggiunta di una nuova riga di dati a TextBox
- 20. confusione di autenticazione api restful con oauth2
- 21. Yii2 - Ottieni l'ID azione corrente in main.php
- 22. Come eseguire attività aggiuntive nel controller restful Yii2?
- 23. Yii2 Ottieni azione corrente nel controller
- 24. Generatore di documentazione JSON API RESTful
- 25. Yii2 Rest - metodo di azione personalizzato e OPZIONI
- 26. Consumare API RESTful utilizzando Java
- 27. Esempio di richiesta Swift e Put per un'API RESTful
- 28. API API RESTful vs Web Service
- 29. Aggiunta dell'autenticazione OAuth 2.0 a un'API RESTful
- 30. Serie di esercitazioni per API RESTful con MV Web API
grazie. questo mi ha salvato il tempo .. –
Grazie, funziona come un fascino. Piccola nota: questo modello extra sarà per ogni controller specificato, ma è possibile aggiungere un'altra regola con altri controller. –