使用 laravel 为不同的 API 制作单个端点

Posted

技术标签:

【中文标题】使用 laravel 为不同的 API 制作单个端点【英文标题】:Making single endpoint for different API using laravel 【发布时间】:2021-06-22 23:51:39 【问题描述】:

我有一个项目需要我使用 Laravel 为不同的有效负载格式创建一个端点。由于我对 Laravel 还很陌生,而且我仍然学习了几天,所以我想知道如何解决这个问题以及如何将不同的有效负载保存到同一个数据库中?感谢您的回复。

既然你们问这个案子,就是这样

第一个有效载荷:

case_1 =  
    "date_of_test":"20210227134300", 
    "id_number":"IC000A2", 
    "patient_name":"Patient A4", 
    "gender":"F", 
    "date_of_birth":"19940231", 
    "lab_number":"QT196-21-124", 
    "clinic_code":"QT196", 
    "lab_studies":[
        
        "code":"2085-9", 
        "name":"HDL Cholesterol", 
        "value":"cancel", 
        "unit":"mg/dL", 
        "ref_range":"> 59", 
        "finding":"A", 
        "result_state":"F"
         
    ],
 

第二个有效载荷:

case_2 =  
    "patient_data":
    
        "id_number":"IC000A3", 
        "first_name":"Patient", 
        "last_name":"A5", 
        "phone_mobile":"+6500000000" 
        "gender":"M", 
        "date_of_birth":"19940231",
    , 
    "date_of_test":"20210227134300", 
    "lab_number":"QT196-21-124", 
    "clinic_code":"QT196", 
    "lab_studies":[
    
        "code":"2085-9", 
        "name":"HDL Cholesterol", 
        "value":"cancel", 
        "unit":"mg/dL", 
        "ref_range":"> 59", 
        "finding":"A", 
        "result_state":"F"
     
  ],
 

【问题讨论】:

嗨,你为什么要这样做?你能给我们更多的信息吗?请解释您的用例! 你可以在同一个端点“/user”上使用不同的http方法 POST、PUT、DELETE 不同的payload,你在找这个吗? 【参考方案1】:

您好,我不确定您要存储的箱子有什么不同。 如果有合理数量的案例类型,那么我建议为此创建多个端点。

否则,您仍然可以定义您的 API,以接受属性,例如case_info 接受非结构化数据的 json 格式。然后,您可以将此数据插入到 MongoDB 等 noSQL 数据库中,或者将其序列化,然后将其放入 SQL 数据库中。 (尽管不推荐使用后者。在几年甚至更短的时间内,你会遇到困难,使用它)。

如果您选择采用这种方式,您只需确保您的客户端(将数据呈现给最终用户)能够处理这种不同的存储格式。

【讨论】:

【参考方案2】:

我无法正确理解您的问题,但如果您询问具有相同端点的不同 http 请求方法,那么您可以这样做

Route::get('/same-end-point', 'XYZController@show');
Route::post('/same-end-point', 'XYZController@store');
Route::put('/same-end-point', 'XYZController@update');
Route::delete('/same-end-point', 'XYZController@destroy');

或者,如果您要求在同一个数据库中保存不同的有效负载,以便您可以在表中创建一个 JSON 类型的列并将您的有效负载保存到该列中 enter image description here

【讨论】:

以上是关于使用 laravel 为不同的 API 制作单个端点的主要内容,如果未能解决你的问题,请参考以下文章

循环遍历单个 <td> 元素 - Laravel

在单个服务器上为多个 Laravel 应用程序使用 Redis 队列

如何在单个服务器上提供多个前端(AngularJS)应用程序和 1 个后端(Laravel)应用程序?

Laravel 5.3 中以 API 为中心的应用程序

在 laravel 多身份验证中为单个守卫自定义登录凭据

[PHP] 浅谈 Laravel auth:api 不同驱动 token 和 passport 的区别