API: return response as HTML table
想要把response table变成HTML的table,即想达到下面这种的话
<table boarder="1" style="width:100%; boarder-collapse: collapse; text-align:left">
<tr>
<th>Customer</th>
<th>Date</th>
<th>Debit Amount</th>
<th>Payment Amount</th>
<th>Remain Balance</th>
</tr>
<tr>
<td>40000446</td>
<td>20250501</td>
<td>17227.80</td>
<td>0.00</td>
<td>17227.80</td>
</tr>
<tr>
<td>40000446</td>
<td>20250515</td>
<td>54.52</td>
<td>0.00</td>
<td>54.52</td>
</tr>
</table>
可以这样子开发:
METHOD if_http_extension~handle_request.
DATA: lv_jsonbody TYPE string,
lv_xstring TYPE xstring,
lv_html_string TYPE string.
"get Request Body: JSON->ABAP
lv_jsonbody = server->request->get_cdata( ).
CALL METHOD /ui2/cl_json=>deserialize
EXPORTING
json = lv_jsonbody
pretty_name = /ui2/cl_json=>pretty_mode-none
assoc_arrays = abap_true
CHANGING
data = ms_req.
**********************************************************************
CALL METHOD me->pre_requisition.
CALL METHOD me->business_logic.
**********************************************************************
lv_html_string = '<table boarder = "1" style = "width:100%; boarder-collapse: collapse; text-align:left">'.
lv_html_string = lv_html_string && '<tr><th>Customer</th><th>Date</th><th>Debit Amount</th><th>Payment Amount</th><th>Remain Balance</th></tr>'.
LOOP AT mt_resp ASSIGNING FIELD-SYMBOL(<resp>).
lv_html_string = lv_html_string && '<tr>'.
lv_html_string = lv_html_string && '<td>' && <resp>-customer && '</td>'.
lv_html_string = lv_html_string && '<td>' && <resp>-date && '</td>'.
lv_html_string = lv_html_string && '<td>' && <resp>-debit_amount && '</td>'.
lv_html_string = lv_html_string && '<td>' && <resp>-payment_amount && '</td>'.
lv_html_string = lv_html_string && '<td>' && <resp>-remain_balance && '</td>'.
lv_html_string = lv_html_string && '</tr>'.
ENDLOOP.
lv_html_string = lv_html_string && '</table>'.
**********************************************************************
CALL METHOD server->response->set_content_type( if_rest_media_type=>gc_text_html ).
CALL METHOD server->response->set_cdata(
EXPORTING
data = lv_html_string ).
CALL METHOD server->response->set_status(
EXPORTING
code = 201
reason = 'Executed' ).
ENDMETHOD.